usingTemplates.php 880 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. <?php
  2. require __DIR__ . "/../vendor/autoload.php";
  3. use BitWasp\Buffertools\Buffer;
  4. use BitWasp\Buffertools\Parser;
  5. use BitWasp\Buffertools\TemplateFactory;
  6. // Parsers read Buffers
  7. $setBuffer = new Buffer('aaabccdeee');
  8. $setParser = new Parser($setBuffer);
  9. // Read data into $set
  10. $set = (new TemplateFactory())
  11. ->bytestring(3)
  12. ->bytestring(1)
  13. ->bytestring(2)
  14. ->bytestring(1)
  15. ->bytestring(3)
  16. ->getTemplate()
  17. ->parse($setParser);
  18. print_r($set);
  19. // We can serialize a set:
  20. // data starts with the size of the set
  21. // write each member as a buffer
  22. // a structure-specific parser reads the internal structure (not needed for writing)
  23. $vector = (new TemplateFactory())
  24. ->vector(function () {
  25. }) // can be null, since we're writing
  26. ->getTemplate()
  27. ->write([$set]);
  28. echo $vector->getHex() . PHP_EOL;
  29. echo $vector->getBinary() . PHP_EOL;