Advertisement
Guest User

Untitled

a guest
Jun 22nd, 2017
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
D 0.75 KB | None | 0 0
  1. struct Structs_S
  2. {
  3.     int x;
  4.     int y;
  5.  
  6.     QDataStream opBinaryRight(string op : ">>")(QDataStream ds)
  7.     {
  8.         ds >> x;
  9.         ds >> y;
  10.         return ds;
  11.     }
  12.  
  13.     QDataStream opBinaryRight(string op : "<<")(QDataStream ds)
  14.     {
  15.         ds << y;
  16.         ds << x;
  17.         return ds;
  18.     }
  19. }
  20.  
  21. static this()
  22. {
  23.     qRegisterMetaType!Structs_S;
  24.     qRegisterMetaTypeStreamOperators!Structs_S;
  25. }
  26.  
  27. {
  28.     auto v = QVariant.fromValue(Structs_S(42, 43));
  29.     auto ba = QByteArray();
  30.     auto ds = scoped!QDataStream(&ba, QIODevice.ReadWrite);
  31.    
  32.     ds << v;
  33.     v.clear();
  34.  
  35.     auto ds2 = scoped!QDataStream(&ba, QIODevice.ReadOnly);
  36.     ds2 >> v;
  37.    
  38.     auto s = v.value!Structs_S();
  39.     assert (s.x == 42 && s.y == 43);
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement