void test() override { Decerealiser cereal(std::vector<uint8_t>{1, 4, 0, 3, 'f', 'o', 'o'}); auto foo = cereal.createPtr<Foo>(); checkEqual(foo->i1, 1); checkEqual(foo->i2, 4); checkEqual(foo->s, std::string("foo")); }
void test() override { Decerealiser cereal(std::vector<uint8_t>{0x9e, 0xea}); //1001 1110 1110 1010 or //100 111 10111 01 010 //checkEqual(cereal.readBits(3), 4); auto foo = cereal.readBits(3); checkEqual(foo, 4); checkEqual(cereal.readBits(3), 7); checkEqual(cereal.readBits(5), 23); checkEqual(cereal.readBits(2), 1); checkEqual(cereal.readBits(3), 2); cereal.reset(); checkEqual(cereal.readBits(3), 4); checkEqual(cereal.readBits(3), 7); checkEqual(cereal.readBits(5), 23); checkEqual(cereal.readBits(2), 1); checkEqual(cereal.readBits(3), 2); }
void test() override { const auto bytes = std::vector<uint8_t>{0x9e, 0xea}; Decerealiser cereal(bytes.cbegin(), bytes.cend()); //1001 1110 1110 1010 or //100 111 10111 01 010 //checkEqual(cereal.readBits(3), 4); auto foo = cereal.readBits(3); checkEqual(foo, 4); checkEqual(cereal.readBits(3), 7); checkEqual(cereal.readBits(5), 23); checkEqual(cereal.readBits(2), 1); checkEqual(cereal.readBits(3), 2); cereal.reset(); checkEqual(cereal.readBits(3), 4); checkEqual(cereal.readBits(3), 7); checkEqual(cereal.readBits(5), 23); checkEqual(cereal.readBits(2), 1); checkEqual(cereal.readBits(3), 2); }
void MqttStream::updateRemaining() { if(!_remaining && _bytes.size() >= MqttFixedHeader::SIZE) { Decerealiser cereal(slice()); _remaining = cereal.value<MqttFixedHeader>().remaining; } }
void test() override { Decerealiser cereal(std::vector<uint8_t>{0x9e, 0xea}); checkEqual(cereal.readBits(9), 317); checkEqual(cereal.readBits(7), 0x6a); }