From b82900f3e06d0ecbce291972721ad078bbb5b2e9 Mon Sep 17 00:00:00 2001 From: Tethys Svensson Date: Tue, 4 Jan 2022 10:49:01 +0100 Subject: [PATCH 1/2] Add null terminators to strings * Adds null terminators to the end of written strings to fix issue #16 * Adds optional null terminator validation while deserializing gated behind a new `extra-validation` feature flag. * Adds extensive testing for the fix. * Slightly changes the debug output for deserialized tables. --- .../src/codegen/templates/rust/table.template | 6 +- planus/Cargo.toml | 1 + planus/src/errors.rs | 4 + planus/src/lib.rs | 58 +++++--- test/rust/Cargo.toml | 4 +- .../deserialize/contains_deprecated_data.txt | 8 +- .../deprecated/deserialize/simple.txt | 8 +- .../enums/deserialize/change_uint13_Y.txt | 124 +++++++++++++----- .../test_files/ids/deserialize/simple.txt | 26 ++-- test/rust/test_files/string_list.fbs | 3 + .../string_list/deserialize/invalid_0_0.bin | Bin 0 -> 40 bytes .../string_list/deserialize/invalid_0_0.txt | 19 +++ .../string_list/deserialize/invalid_0_1.bin | Bin 0 -> 44 bytes .../string_list/deserialize/invalid_0_1.txt | 19 +++ .../string_list/deserialize/invalid_0_2.bin | Bin 0 -> 44 bytes .../string_list/deserialize/invalid_0_2.txt | 19 +++ .../string_list/deserialize/invalid_0_3.bin | Bin 0 -> 44 bytes .../string_list/deserialize/invalid_0_3.txt | 19 +++ .../string_list/deserialize/invalid_0_4.bin | Bin 0 -> 44 bytes .../string_list/deserialize/invalid_0_4.txt | 19 +++ .../string_list/deserialize/invalid_1_0.bin | Bin 0 -> 41 bytes .../string_list/deserialize/invalid_1_0.txt | 26 ++++ .../string_list/deserialize/invalid_1_1.bin | Bin 0 -> 45 bytes .../string_list/deserialize/invalid_1_1.txt | 19 +++ .../string_list/deserialize/invalid_1_2.bin | Bin 0 -> 45 bytes .../string_list/deserialize/invalid_1_2.txt | 19 +++ .../string_list/deserialize/invalid_1_3.bin | Bin 0 -> 45 bytes .../string_list/deserialize/invalid_1_3.txt | 19 +++ .../string_list/deserialize/invalid_1_4.bin | Bin 0 -> 45 bytes .../string_list/deserialize/invalid_1_4.txt | 26 ++++ .../string_list/deserialize/invalid_2_0.bin | Bin 0 -> 42 bytes .../string_list/deserialize/invalid_2_0.txt | 26 ++++ .../string_list/deserialize/invalid_2_1.bin | Bin 0 -> 46 bytes .../string_list/deserialize/invalid_2_1.txt | 19 +++ .../string_list/deserialize/invalid_2_2.bin | Bin 0 -> 46 bytes .../string_list/deserialize/invalid_2_2.txt | 19 +++ .../string_list/deserialize/invalid_2_3.bin | Bin 0 -> 46 bytes .../string_list/deserialize/invalid_2_3.txt | 19 +++ .../string_list/deserialize/invalid_2_4.bin | Bin 0 -> 46 bytes .../string_list/deserialize/invalid_2_4.txt | 26 ++++ .../string_list/deserialize/invalid_3_0.bin | Bin 0 -> 43 bytes .../string_list/deserialize/invalid_3_0.txt | 26 ++++ .../string_list/deserialize/invalid_3_1.bin | Bin 0 -> 47 bytes .../string_list/deserialize/invalid_3_1.txt | 19 +++ .../string_list/deserialize/invalid_3_2.bin | Bin 0 -> 47 bytes .../string_list/deserialize/invalid_3_2.txt | 19 +++ .../string_list/deserialize/invalid_3_3.bin | Bin 0 -> 47 bytes .../string_list/deserialize/invalid_3_3.txt | 19 +++ .../string_list/deserialize/invalid_3_4.bin | Bin 0 -> 47 bytes .../string_list/deserialize/invalid_3_4.txt | 26 ++++ .../string_list/deserialize/invalid_4_0.bin | Bin 0 -> 44 bytes .../string_list/deserialize/invalid_4_0.txt | 26 ++++ .../string_list/deserialize/invalid_4_1.bin | Bin 0 -> 48 bytes .../string_list/deserialize/invalid_4_1.txt | 19 +++ .../string_list/deserialize/invalid_4_2.bin | Bin 0 -> 48 bytes .../string_list/deserialize/invalid_4_2.txt | 19 +++ .../string_list/deserialize/invalid_4_3.bin | Bin 0 -> 48 bytes .../string_list/deserialize/invalid_4_3.txt | 19 +++ .../string_list/deserialize/invalid_4_4.bin | Bin 0 -> 48 bytes .../string_list/deserialize/invalid_4_4.txt | 26 ++++ .../string_list/deserialize/lengths_0_0.bin | Bin 0 -> 45 bytes .../string_list/deserialize/lengths_0_0.txt | 12 ++ .../string_list/deserialize/lengths_0_1.bin | Bin 0 -> 45 bytes .../string_list/deserialize/lengths_0_1.txt | 12 ++ .../string_list/deserialize/lengths_0_2.bin | Bin 0 -> 45 bytes .../string_list/deserialize/lengths_0_2.txt | 12 ++ .../string_list/deserialize/lengths_0_3.bin | Bin 0 -> 45 bytes .../string_list/deserialize/lengths_0_3.txt | 12 ++ .../string_list/deserialize/lengths_0_4.bin | Bin 0 -> 49 bytes .../string_list/deserialize/lengths_0_4.txt | 12 ++ .../string_list/deserialize/lengths_1_0.bin | Bin 0 -> 46 bytes .../string_list/deserialize/lengths_1_0.txt | 12 ++ .../string_list/deserialize/lengths_1_1.bin | Bin 0 -> 46 bytes .../string_list/deserialize/lengths_1_1.txt | 12 ++ .../string_list/deserialize/lengths_1_2.bin | Bin 0 -> 46 bytes .../string_list/deserialize/lengths_1_2.txt | 12 ++ .../string_list/deserialize/lengths_1_3.bin | Bin 0 -> 46 bytes .../string_list/deserialize/lengths_1_3.txt | 12 ++ .../string_list/deserialize/lengths_1_4.bin | Bin 0 -> 50 bytes .../string_list/deserialize/lengths_1_4.txt | 12 ++ .../string_list/deserialize/lengths_2_0.bin | Bin 0 -> 47 bytes .../string_list/deserialize/lengths_2_0.txt | 12 ++ .../string_list/deserialize/lengths_2_1.bin | Bin 0 -> 47 bytes .../string_list/deserialize/lengths_2_1.txt | 12 ++ .../string_list/deserialize/lengths_2_2.bin | Bin 0 -> 47 bytes .../string_list/deserialize/lengths_2_2.txt | 12 ++ .../string_list/deserialize/lengths_2_3.bin | Bin 0 -> 47 bytes .../string_list/deserialize/lengths_2_3.txt | 12 ++ .../string_list/deserialize/lengths_2_4.bin | Bin 0 -> 51 bytes .../string_list/deserialize/lengths_2_4.txt | 12 ++ .../string_list/deserialize/lengths_3_0.bin | Bin 0 -> 48 bytes .../string_list/deserialize/lengths_3_0.txt | 12 ++ .../string_list/deserialize/lengths_3_1.bin | Bin 0 -> 48 bytes .../string_list/deserialize/lengths_3_1.txt | 12 ++ .../string_list/deserialize/lengths_3_2.bin | Bin 0 -> 48 bytes .../string_list/deserialize/lengths_3_2.txt | 12 ++ .../string_list/deserialize/lengths_3_3.bin | Bin 0 -> 48 bytes .../string_list/deserialize/lengths_3_3.txt | 12 ++ .../string_list/deserialize/lengths_3_4.bin | Bin 0 -> 52 bytes .../string_list/deserialize/lengths_3_4.txt | 12 ++ .../string_list/deserialize/lengths_4_0.bin | Bin 0 -> 49 bytes .../string_list/deserialize/lengths_4_0.txt | 12 ++ .../string_list/deserialize/lengths_4_1.bin | Bin 0 -> 49 bytes .../string_list/deserialize/lengths_4_1.txt | 12 ++ .../string_list/deserialize/lengths_4_2.bin | Bin 0 -> 49 bytes .../string_list/deserialize/lengths_4_2.txt | 12 ++ .../string_list/deserialize/lengths_4_3.bin | Bin 0 -> 49 bytes .../string_list/deserialize/lengths_4_3.txt | 12 ++ .../string_list/deserialize/lengths_4_4.bin | Bin 0 -> 53 bytes .../string_list/deserialize/lengths_4_4.txt | 12 ++ .../string_list/serialize/lengths_0_0.bin | Bin 0 -> 45 bytes .../string_list/serialize/lengths_0_0.dbg.txt | 8 ++ .../serialize/lengths_0_0.dump.txt | 4 + .../string_list/serialize/lengths_0_0.json | 1 + .../string_list/serialize/lengths_0_1.bin | Bin 0 -> 45 bytes .../string_list/serialize/lengths_0_1.dbg.txt | 8 ++ .../serialize/lengths_0_1.dump.txt | 4 + .../string_list/serialize/lengths_0_1.json | 1 + .../string_list/serialize/lengths_0_2.bin | Bin 0 -> 45 bytes .../string_list/serialize/lengths_0_2.dbg.txt | 8 ++ .../serialize/lengths_0_2.dump.txt | 4 + .../string_list/serialize/lengths_0_2.json | 1 + .../string_list/serialize/lengths_0_3.bin | Bin 0 -> 45 bytes .../string_list/serialize/lengths_0_3.dbg.txt | 8 ++ .../serialize/lengths_0_3.dump.txt | 4 + .../string_list/serialize/lengths_0_3.json | 1 + .../string_list/serialize/lengths_0_4.bin | Bin 0 -> 49 bytes .../string_list/serialize/lengths_0_4.dbg.txt | 8 ++ .../serialize/lengths_0_4.dump.txt | 4 + .../string_list/serialize/lengths_0_4.json | 1 + .../string_list/serialize/lengths_1_0.bin | Bin 0 -> 46 bytes .../string_list/serialize/lengths_1_0.dbg.txt | 8 ++ .../serialize/lengths_1_0.dump.txt | 4 + .../string_list/serialize/lengths_1_0.json | 1 + .../string_list/serialize/lengths_1_1.bin | Bin 0 -> 46 bytes .../string_list/serialize/lengths_1_1.dbg.txt | 8 ++ .../serialize/lengths_1_1.dump.txt | 4 + .../string_list/serialize/lengths_1_1.json | 1 + .../string_list/serialize/lengths_1_2.bin | Bin 0 -> 46 bytes .../string_list/serialize/lengths_1_2.dbg.txt | 8 ++ .../serialize/lengths_1_2.dump.txt | 4 + .../string_list/serialize/lengths_1_2.json | 1 + .../string_list/serialize/lengths_1_3.bin | Bin 0 -> 46 bytes .../string_list/serialize/lengths_1_3.dbg.txt | 8 ++ .../serialize/lengths_1_3.dump.txt | 4 + .../string_list/serialize/lengths_1_3.json | 1 + .../string_list/serialize/lengths_1_4.bin | Bin 0 -> 50 bytes .../string_list/serialize/lengths_1_4.dbg.txt | 8 ++ .../serialize/lengths_1_4.dump.txt | 4 + .../string_list/serialize/lengths_1_4.json | 1 + .../string_list/serialize/lengths_2_0.bin | Bin 0 -> 47 bytes .../string_list/serialize/lengths_2_0.dbg.txt | 8 ++ .../serialize/lengths_2_0.dump.txt | 4 + .../string_list/serialize/lengths_2_0.json | 1 + .../string_list/serialize/lengths_2_1.bin | Bin 0 -> 47 bytes .../string_list/serialize/lengths_2_1.dbg.txt | 8 ++ .../serialize/lengths_2_1.dump.txt | 4 + .../string_list/serialize/lengths_2_1.json | 1 + .../string_list/serialize/lengths_2_2.bin | Bin 0 -> 47 bytes .../string_list/serialize/lengths_2_2.dbg.txt | 8 ++ .../serialize/lengths_2_2.dump.txt | 4 + .../string_list/serialize/lengths_2_2.json | 1 + .../string_list/serialize/lengths_2_3.bin | Bin 0 -> 47 bytes .../string_list/serialize/lengths_2_3.dbg.txt | 8 ++ .../serialize/lengths_2_3.dump.txt | 4 + .../string_list/serialize/lengths_2_3.json | 1 + .../string_list/serialize/lengths_2_4.bin | Bin 0 -> 51 bytes .../string_list/serialize/lengths_2_4.dbg.txt | 8 ++ .../serialize/lengths_2_4.dump.txt | 4 + .../string_list/serialize/lengths_2_4.json | 1 + .../string_list/serialize/lengths_3_0.bin | Bin 0 -> 48 bytes .../string_list/serialize/lengths_3_0.dbg.txt | 8 ++ .../serialize/lengths_3_0.dump.txt | 4 + .../string_list/serialize/lengths_3_0.json | 1 + .../string_list/serialize/lengths_3_1.bin | Bin 0 -> 48 bytes .../string_list/serialize/lengths_3_1.dbg.txt | 8 ++ .../serialize/lengths_3_1.dump.txt | 4 + .../string_list/serialize/lengths_3_1.json | 1 + .../string_list/serialize/lengths_3_2.bin | Bin 0 -> 48 bytes .../string_list/serialize/lengths_3_2.dbg.txt | 8 ++ .../serialize/lengths_3_2.dump.txt | 4 + .../string_list/serialize/lengths_3_2.json | 1 + .../string_list/serialize/lengths_3_3.bin | Bin 0 -> 48 bytes .../string_list/serialize/lengths_3_3.dbg.txt | 8 ++ .../serialize/lengths_3_3.dump.txt | 4 + .../string_list/serialize/lengths_3_3.json | 1 + .../string_list/serialize/lengths_3_4.bin | Bin 0 -> 52 bytes .../string_list/serialize/lengths_3_4.dbg.txt | 8 ++ .../serialize/lengths_3_4.dump.txt | 4 + .../string_list/serialize/lengths_3_4.json | 1 + .../string_list/serialize/lengths_4_0.bin | Bin 0 -> 49 bytes .../string_list/serialize/lengths_4_0.dbg.txt | 8 ++ .../serialize/lengths_4_0.dump.txt | 4 + .../string_list/serialize/lengths_4_0.json | 1 + .../string_list/serialize/lengths_4_1.bin | Bin 0 -> 49 bytes .../string_list/serialize/lengths_4_1.dbg.txt | 8 ++ .../serialize/lengths_4_1.dump.txt | 4 + .../string_list/serialize/lengths_4_1.json | 1 + .../string_list/serialize/lengths_4_2.bin | Bin 0 -> 49 bytes .../string_list/serialize/lengths_4_2.dbg.txt | 8 ++ .../serialize/lengths_4_2.dump.txt | 4 + .../string_list/serialize/lengths_4_2.json | 1 + .../string_list/serialize/lengths_4_3.bin | Bin 0 -> 49 bytes .../string_list/serialize/lengths_4_3.dbg.txt | 8 ++ .../serialize/lengths_4_3.dump.txt | 4 + .../string_list/serialize/lengths_4_3.json | 1 + .../string_list/serialize/lengths_4_4.bin | Bin 0 -> 53 bytes .../string_list/serialize/lengths_4_4.dbg.txt | 8 ++ .../serialize/lengths_4_4.dump.txt | 4 + .../string_list/serialize/lengths_4_4.json | 1 + test/rust/test_files/strings.fbs | 4 + .../strings/deserialize/invalid_0_0.bin | Bin 0 -> 32 bytes .../strings/deserialize/invalid_0_0.txt | 15 +++ .../strings/deserialize/invalid_0_1.bin | Bin 0 -> 36 bytes .../strings/deserialize/invalid_0_1.txt | 15 +++ .../strings/deserialize/invalid_0_2.bin | Bin 0 -> 36 bytes .../strings/deserialize/invalid_0_2.txt | 15 +++ .../strings/deserialize/invalid_0_3.bin | Bin 0 -> 36 bytes .../strings/deserialize/invalid_0_3.txt | 15 +++ .../strings/deserialize/invalid_0_4.bin | Bin 0 -> 36 bytes .../strings/deserialize/invalid_0_4.txt | 15 +++ .../strings/deserialize/invalid_1_0.bin | Bin 0 -> 33 bytes .../strings/deserialize/invalid_1_0.txt | 22 ++++ .../strings/deserialize/invalid_1_1.bin | Bin 0 -> 37 bytes .../strings/deserialize/invalid_1_1.txt | 15 +++ .../strings/deserialize/invalid_1_2.bin | Bin 0 -> 37 bytes .../strings/deserialize/invalid_1_2.txt | 15 +++ .../strings/deserialize/invalid_1_3.bin | Bin 0 -> 37 bytes .../strings/deserialize/invalid_1_3.txt | 15 +++ .../strings/deserialize/invalid_1_4.bin | Bin 0 -> 37 bytes .../strings/deserialize/invalid_1_4.txt | 22 ++++ .../strings/deserialize/invalid_2_0.bin | Bin 0 -> 34 bytes .../strings/deserialize/invalid_2_0.txt | 22 ++++ .../strings/deserialize/invalid_2_1.bin | Bin 0 -> 38 bytes .../strings/deserialize/invalid_2_1.txt | 15 +++ .../strings/deserialize/invalid_2_2.bin | Bin 0 -> 38 bytes .../strings/deserialize/invalid_2_2.txt | 15 +++ .../strings/deserialize/invalid_2_3.bin | Bin 0 -> 38 bytes .../strings/deserialize/invalid_2_3.txt | 15 +++ .../strings/deserialize/invalid_2_4.bin | Bin 0 -> 38 bytes .../strings/deserialize/invalid_2_4.txt | 22 ++++ .../strings/deserialize/invalid_3_0.bin | Bin 0 -> 35 bytes .../strings/deserialize/invalid_3_0.txt | 22 ++++ .../strings/deserialize/invalid_3_1.bin | Bin 0 -> 39 bytes .../strings/deserialize/invalid_3_1.txt | 15 +++ .../strings/deserialize/invalid_3_2.bin | Bin 0 -> 39 bytes .../strings/deserialize/invalid_3_2.txt | 15 +++ .../strings/deserialize/invalid_3_3.bin | Bin 0 -> 39 bytes .../strings/deserialize/invalid_3_3.txt | 15 +++ .../strings/deserialize/invalid_3_4.bin | Bin 0 -> 39 bytes .../strings/deserialize/invalid_3_4.txt | 22 ++++ .../strings/deserialize/invalid_4_0.bin | Bin 0 -> 36 bytes .../strings/deserialize/invalid_4_0.txt | 22 ++++ .../strings/deserialize/invalid_4_1.bin | Bin 0 -> 40 bytes .../strings/deserialize/invalid_4_1.txt | 15 +++ .../strings/deserialize/invalid_4_2.bin | Bin 0 -> 40 bytes .../strings/deserialize/invalid_4_2.txt | 15 +++ .../strings/deserialize/invalid_4_3.bin | Bin 0 -> 40 bytes .../strings/deserialize/invalid_4_3.txt | 15 +++ .../strings/deserialize/invalid_4_4.bin | Bin 0 -> 40 bytes .../strings/deserialize/invalid_4_4.txt | 22 ++++ .../strings/deserialize/lengths_0_0.bin | Bin 0 -> 37 bytes .../strings/deserialize/lengths_0_0.txt | 8 ++ .../strings/deserialize/lengths_0_1.bin | Bin 0 -> 37 bytes .../strings/deserialize/lengths_0_1.txt | 8 ++ .../strings/deserialize/lengths_0_2.bin | Bin 0 -> 37 bytes .../strings/deserialize/lengths_0_2.txt | 8 ++ .../strings/deserialize/lengths_0_3.bin | Bin 0 -> 37 bytes .../strings/deserialize/lengths_0_3.txt | 8 ++ .../strings/deserialize/lengths_0_4.bin | Bin 0 -> 41 bytes .../strings/deserialize/lengths_0_4.txt | 8 ++ .../strings/deserialize/lengths_1_0.bin | Bin 0 -> 38 bytes .../strings/deserialize/lengths_1_0.txt | 8 ++ .../strings/deserialize/lengths_1_1.bin | Bin 0 -> 38 bytes .../strings/deserialize/lengths_1_1.txt | 8 ++ .../strings/deserialize/lengths_1_2.bin | Bin 0 -> 38 bytes .../strings/deserialize/lengths_1_2.txt | 8 ++ .../strings/deserialize/lengths_1_3.bin | Bin 0 -> 38 bytes .../strings/deserialize/lengths_1_3.txt | 8 ++ .../strings/deserialize/lengths_1_4.bin | Bin 0 -> 42 bytes .../strings/deserialize/lengths_1_4.txt | 8 ++ .../strings/deserialize/lengths_2_0.bin | Bin 0 -> 39 bytes .../strings/deserialize/lengths_2_0.txt | 8 ++ .../strings/deserialize/lengths_2_1.bin | Bin 0 -> 39 bytes .../strings/deserialize/lengths_2_1.txt | 8 ++ .../strings/deserialize/lengths_2_2.bin | Bin 0 -> 39 bytes .../strings/deserialize/lengths_2_2.txt | 8 ++ .../strings/deserialize/lengths_2_3.bin | Bin 0 -> 39 bytes .../strings/deserialize/lengths_2_3.txt | 8 ++ .../strings/deserialize/lengths_2_4.bin | Bin 0 -> 43 bytes .../strings/deserialize/lengths_2_4.txt | 8 ++ .../strings/deserialize/lengths_3_0.bin | Bin 0 -> 40 bytes .../strings/deserialize/lengths_3_0.txt | 8 ++ .../strings/deserialize/lengths_3_1.bin | Bin 0 -> 40 bytes .../strings/deserialize/lengths_3_1.txt | 8 ++ .../strings/deserialize/lengths_3_2.bin | Bin 0 -> 40 bytes .../strings/deserialize/lengths_3_2.txt | 8 ++ .../strings/deserialize/lengths_3_3.bin | Bin 0 -> 40 bytes .../strings/deserialize/lengths_3_3.txt | 8 ++ .../strings/deserialize/lengths_3_4.bin | Bin 0 -> 44 bytes .../strings/deserialize/lengths_3_4.txt | 8 ++ .../strings/deserialize/lengths_4_0.bin | Bin 0 -> 41 bytes .../strings/deserialize/lengths_4_0.txt | 8 ++ .../strings/deserialize/lengths_4_1.bin | Bin 0 -> 41 bytes .../strings/deserialize/lengths_4_1.txt | 8 ++ .../strings/deserialize/lengths_4_2.bin | Bin 0 -> 41 bytes .../strings/deserialize/lengths_4_2.txt | 8 ++ .../strings/deserialize/lengths_4_3.bin | Bin 0 -> 41 bytes .../strings/deserialize/lengths_4_3.txt | 8 ++ .../strings/deserialize/lengths_4_4.bin | Bin 0 -> 45 bytes .../strings/deserialize/lengths_4_4.txt | 8 ++ .../strings/serialize/lengths_0_0.bin | Bin 0 -> 37 bytes .../strings/serialize/lengths_0_0.dbg.txt | 8 ++ .../strings/serialize/lengths_0_0.dump.txt | 6 + .../strings/serialize/lengths_0_0.json | 4 + .../strings/serialize/lengths_0_1.bin | Bin 0 -> 37 bytes .../strings/serialize/lengths_0_1.dbg.txt | 8 ++ .../strings/serialize/lengths_0_1.dump.txt | 6 + .../strings/serialize/lengths_0_1.json | 4 + .../strings/serialize/lengths_0_2.bin | Bin 0 -> 37 bytes .../strings/serialize/lengths_0_2.dbg.txt | 8 ++ .../strings/serialize/lengths_0_2.dump.txt | 6 + .../strings/serialize/lengths_0_2.json | 4 + .../strings/serialize/lengths_0_3.bin | Bin 0 -> 37 bytes .../strings/serialize/lengths_0_3.dbg.txt | 8 ++ .../strings/serialize/lengths_0_3.dump.txt | 6 + .../strings/serialize/lengths_0_3.json | 4 + .../strings/serialize/lengths_0_4.bin | Bin 0 -> 41 bytes .../strings/serialize/lengths_0_4.dbg.txt | 8 ++ .../strings/serialize/lengths_0_4.dump.txt | 6 + .../strings/serialize/lengths_0_4.json | 4 + .../strings/serialize/lengths_1_0.bin | Bin 0 -> 38 bytes .../strings/serialize/lengths_1_0.dbg.txt | 8 ++ .../strings/serialize/lengths_1_0.dump.txt | 6 + .../strings/serialize/lengths_1_0.json | 4 + .../strings/serialize/lengths_1_1.bin | Bin 0 -> 38 bytes .../strings/serialize/lengths_1_1.dbg.txt | 8 ++ .../strings/serialize/lengths_1_1.dump.txt | 6 + .../strings/serialize/lengths_1_1.json | 4 + .../strings/serialize/lengths_1_2.bin | Bin 0 -> 38 bytes .../strings/serialize/lengths_1_2.dbg.txt | 8 ++ .../strings/serialize/lengths_1_2.dump.txt | 6 + .../strings/serialize/lengths_1_2.json | 4 + .../strings/serialize/lengths_1_3.bin | Bin 0 -> 38 bytes .../strings/serialize/lengths_1_3.dbg.txt | 8 ++ .../strings/serialize/lengths_1_3.dump.txt | 6 + .../strings/serialize/lengths_1_3.json | 4 + .../strings/serialize/lengths_1_4.bin | Bin 0 -> 42 bytes .../strings/serialize/lengths_1_4.dbg.txt | 8 ++ .../strings/serialize/lengths_1_4.dump.txt | 6 + .../strings/serialize/lengths_1_4.json | 4 + .../strings/serialize/lengths_2_0.bin | Bin 0 -> 39 bytes .../strings/serialize/lengths_2_0.dbg.txt | 8 ++ .../strings/serialize/lengths_2_0.dump.txt | 6 + .../strings/serialize/lengths_2_0.json | 4 + .../strings/serialize/lengths_2_1.bin | Bin 0 -> 39 bytes .../strings/serialize/lengths_2_1.dbg.txt | 8 ++ .../strings/serialize/lengths_2_1.dump.txt | 6 + .../strings/serialize/lengths_2_1.json | 4 + .../strings/serialize/lengths_2_2.bin | Bin 0 -> 39 bytes .../strings/serialize/lengths_2_2.dbg.txt | 8 ++ .../strings/serialize/lengths_2_2.dump.txt | 6 + .../strings/serialize/lengths_2_2.json | 4 + .../strings/serialize/lengths_2_3.bin | Bin 0 -> 39 bytes .../strings/serialize/lengths_2_3.dbg.txt | 8 ++ .../strings/serialize/lengths_2_3.dump.txt | 6 + .../strings/serialize/lengths_2_3.json | 4 + .../strings/serialize/lengths_2_4.bin | Bin 0 -> 43 bytes .../strings/serialize/lengths_2_4.dbg.txt | 8 ++ .../strings/serialize/lengths_2_4.dump.txt | 6 + .../strings/serialize/lengths_2_4.json | 4 + .../strings/serialize/lengths_3_0.bin | Bin 0 -> 40 bytes .../strings/serialize/lengths_3_0.dbg.txt | 8 ++ .../strings/serialize/lengths_3_0.dump.txt | 6 + .../strings/serialize/lengths_3_0.json | 4 + .../strings/serialize/lengths_3_1.bin | Bin 0 -> 40 bytes .../strings/serialize/lengths_3_1.dbg.txt | 8 ++ .../strings/serialize/lengths_3_1.dump.txt | 6 + .../strings/serialize/lengths_3_1.json | 4 + .../strings/serialize/lengths_3_2.bin | Bin 0 -> 40 bytes .../strings/serialize/lengths_3_2.dbg.txt | 8 ++ .../strings/serialize/lengths_3_2.dump.txt | 6 + .../strings/serialize/lengths_3_2.json | 4 + .../strings/serialize/lengths_3_3.bin | Bin 0 -> 40 bytes .../strings/serialize/lengths_3_3.dbg.txt | 8 ++ .../strings/serialize/lengths_3_3.dump.txt | 6 + .../strings/serialize/lengths_3_3.json | 4 + .../strings/serialize/lengths_3_4.bin | Bin 0 -> 44 bytes .../strings/serialize/lengths_3_4.dbg.txt | 8 ++ .../strings/serialize/lengths_3_4.dump.txt | 6 + .../strings/serialize/lengths_3_4.json | 4 + .../strings/serialize/lengths_4_0.bin | Bin 0 -> 41 bytes .../strings/serialize/lengths_4_0.dbg.txt | 8 ++ .../strings/serialize/lengths_4_0.dump.txt | 6 + .../strings/serialize/lengths_4_0.json | 4 + .../strings/serialize/lengths_4_1.bin | Bin 0 -> 41 bytes .../strings/serialize/lengths_4_1.dbg.txt | 8 ++ .../strings/serialize/lengths_4_1.dump.txt | 6 + .../strings/serialize/lengths_4_1.json | 4 + .../strings/serialize/lengths_4_2.bin | Bin 0 -> 41 bytes .../strings/serialize/lengths_4_2.dbg.txt | 8 ++ .../strings/serialize/lengths_4_2.dump.txt | 6 + .../strings/serialize/lengths_4_2.json | 4 + .../strings/serialize/lengths_4_3.bin | Bin 0 -> 41 bytes .../strings/serialize/lengths_4_3.dbg.txt | 8 ++ .../strings/serialize/lengths_4_3.dump.txt | 6 + .../strings/serialize/lengths_4_3.json | 4 + .../strings/serialize/lengths_4_4.bin | Bin 0 -> 45 bytes .../strings/serialize/lengths_4_4.dbg.txt | 8 ++ .../strings/serialize/lengths_4_4.dump.txt | 6 + .../strings/serialize/lengths_4_4.json | 4 + 411 files changed, 2416 insertions(+), 67 deletions(-) create mode 100644 test/rust/test_files/string_list.fbs create mode 100644 test/rust/test_files/string_list/deserialize/invalid_0_0.bin create mode 100644 test/rust/test_files/string_list/deserialize/invalid_0_0.txt create mode 100644 test/rust/test_files/string_list/deserialize/invalid_0_1.bin create mode 100644 test/rust/test_files/string_list/deserialize/invalid_0_1.txt create mode 100644 test/rust/test_files/string_list/deserialize/invalid_0_2.bin create mode 100644 test/rust/test_files/string_list/deserialize/invalid_0_2.txt create mode 100644 test/rust/test_files/string_list/deserialize/invalid_0_3.bin create mode 100644 test/rust/test_files/string_list/deserialize/invalid_0_3.txt create mode 100644 test/rust/test_files/string_list/deserialize/invalid_0_4.bin create mode 100644 test/rust/test_files/string_list/deserialize/invalid_0_4.txt create mode 100644 test/rust/test_files/string_list/deserialize/invalid_1_0.bin create mode 100644 test/rust/test_files/string_list/deserialize/invalid_1_0.txt create mode 100644 test/rust/test_files/string_list/deserialize/invalid_1_1.bin create mode 100644 test/rust/test_files/string_list/deserialize/invalid_1_1.txt create mode 100644 test/rust/test_files/string_list/deserialize/invalid_1_2.bin create mode 100644 test/rust/test_files/string_list/deserialize/invalid_1_2.txt create mode 100644 test/rust/test_files/string_list/deserialize/invalid_1_3.bin create mode 100644 test/rust/test_files/string_list/deserialize/invalid_1_3.txt create mode 100644 test/rust/test_files/string_list/deserialize/invalid_1_4.bin create mode 100644 test/rust/test_files/string_list/deserialize/invalid_1_4.txt create mode 100644 test/rust/test_files/string_list/deserialize/invalid_2_0.bin create mode 100644 test/rust/test_files/string_list/deserialize/invalid_2_0.txt create mode 100644 test/rust/test_files/string_list/deserialize/invalid_2_1.bin create mode 100644 test/rust/test_files/string_list/deserialize/invalid_2_1.txt create mode 100644 test/rust/test_files/string_list/deserialize/invalid_2_2.bin create mode 100644 test/rust/test_files/string_list/deserialize/invalid_2_2.txt create mode 100644 test/rust/test_files/string_list/deserialize/invalid_2_3.bin create mode 100644 test/rust/test_files/string_list/deserialize/invalid_2_3.txt create mode 100644 test/rust/test_files/string_list/deserialize/invalid_2_4.bin create mode 100644 test/rust/test_files/string_list/deserialize/invalid_2_4.txt create mode 100644 test/rust/test_files/string_list/deserialize/invalid_3_0.bin create mode 100644 test/rust/test_files/string_list/deserialize/invalid_3_0.txt create mode 100644 test/rust/test_files/string_list/deserialize/invalid_3_1.bin create mode 100644 test/rust/test_files/string_list/deserialize/invalid_3_1.txt create mode 100644 test/rust/test_files/string_list/deserialize/invalid_3_2.bin create mode 100644 test/rust/test_files/string_list/deserialize/invalid_3_2.txt create mode 100644 test/rust/test_files/string_list/deserialize/invalid_3_3.bin create mode 100644 test/rust/test_files/string_list/deserialize/invalid_3_3.txt create mode 100644 test/rust/test_files/string_list/deserialize/invalid_3_4.bin create mode 100644 test/rust/test_files/string_list/deserialize/invalid_3_4.txt create mode 100644 test/rust/test_files/string_list/deserialize/invalid_4_0.bin create mode 100644 test/rust/test_files/string_list/deserialize/invalid_4_0.txt create mode 100644 test/rust/test_files/string_list/deserialize/invalid_4_1.bin create mode 100644 test/rust/test_files/string_list/deserialize/invalid_4_1.txt create mode 100644 test/rust/test_files/string_list/deserialize/invalid_4_2.bin create mode 100644 test/rust/test_files/string_list/deserialize/invalid_4_2.txt create mode 100644 test/rust/test_files/string_list/deserialize/invalid_4_3.bin create mode 100644 test/rust/test_files/string_list/deserialize/invalid_4_3.txt create mode 100644 test/rust/test_files/string_list/deserialize/invalid_4_4.bin create mode 100644 test/rust/test_files/string_list/deserialize/invalid_4_4.txt create mode 100644 test/rust/test_files/string_list/deserialize/lengths_0_0.bin create mode 100644 test/rust/test_files/string_list/deserialize/lengths_0_0.txt create mode 100644 test/rust/test_files/string_list/deserialize/lengths_0_1.bin create mode 100644 test/rust/test_files/string_list/deserialize/lengths_0_1.txt create mode 100644 test/rust/test_files/string_list/deserialize/lengths_0_2.bin create mode 100644 test/rust/test_files/string_list/deserialize/lengths_0_2.txt create mode 100644 test/rust/test_files/string_list/deserialize/lengths_0_3.bin create mode 100644 test/rust/test_files/string_list/deserialize/lengths_0_3.txt create mode 100644 test/rust/test_files/string_list/deserialize/lengths_0_4.bin create mode 100644 test/rust/test_files/string_list/deserialize/lengths_0_4.txt create mode 100644 test/rust/test_files/string_list/deserialize/lengths_1_0.bin create mode 100644 test/rust/test_files/string_list/deserialize/lengths_1_0.txt create mode 100644 test/rust/test_files/string_list/deserialize/lengths_1_1.bin create mode 100644 test/rust/test_files/string_list/deserialize/lengths_1_1.txt create mode 100644 test/rust/test_files/string_list/deserialize/lengths_1_2.bin create mode 100644 test/rust/test_files/string_list/deserialize/lengths_1_2.txt create mode 100644 test/rust/test_files/string_list/deserialize/lengths_1_3.bin create mode 100644 test/rust/test_files/string_list/deserialize/lengths_1_3.txt create mode 100644 test/rust/test_files/string_list/deserialize/lengths_1_4.bin create mode 100644 test/rust/test_files/string_list/deserialize/lengths_1_4.txt create mode 100644 test/rust/test_files/string_list/deserialize/lengths_2_0.bin create mode 100644 test/rust/test_files/string_list/deserialize/lengths_2_0.txt create mode 100644 test/rust/test_files/string_list/deserialize/lengths_2_1.bin create mode 100644 test/rust/test_files/string_list/deserialize/lengths_2_1.txt create mode 100644 test/rust/test_files/string_list/deserialize/lengths_2_2.bin create mode 100644 test/rust/test_files/string_list/deserialize/lengths_2_2.txt create mode 100644 test/rust/test_files/string_list/deserialize/lengths_2_3.bin create mode 100644 test/rust/test_files/string_list/deserialize/lengths_2_3.txt create mode 100644 test/rust/test_files/string_list/deserialize/lengths_2_4.bin create mode 100644 test/rust/test_files/string_list/deserialize/lengths_2_4.txt create mode 100644 test/rust/test_files/string_list/deserialize/lengths_3_0.bin create mode 100644 test/rust/test_files/string_list/deserialize/lengths_3_0.txt create mode 100644 test/rust/test_files/string_list/deserialize/lengths_3_1.bin create mode 100644 test/rust/test_files/string_list/deserialize/lengths_3_1.txt create mode 100644 test/rust/test_files/string_list/deserialize/lengths_3_2.bin create mode 100644 test/rust/test_files/string_list/deserialize/lengths_3_2.txt create mode 100644 test/rust/test_files/string_list/deserialize/lengths_3_3.bin create mode 100644 test/rust/test_files/string_list/deserialize/lengths_3_3.txt create mode 100644 test/rust/test_files/string_list/deserialize/lengths_3_4.bin create mode 100644 test/rust/test_files/string_list/deserialize/lengths_3_4.txt create mode 100644 test/rust/test_files/string_list/deserialize/lengths_4_0.bin create mode 100644 test/rust/test_files/string_list/deserialize/lengths_4_0.txt create mode 100644 test/rust/test_files/string_list/deserialize/lengths_4_1.bin create mode 100644 test/rust/test_files/string_list/deserialize/lengths_4_1.txt create mode 100644 test/rust/test_files/string_list/deserialize/lengths_4_2.bin create mode 100644 test/rust/test_files/string_list/deserialize/lengths_4_2.txt create mode 100644 test/rust/test_files/string_list/deserialize/lengths_4_3.bin create mode 100644 test/rust/test_files/string_list/deserialize/lengths_4_3.txt create mode 100644 test/rust/test_files/string_list/deserialize/lengths_4_4.bin create mode 100644 test/rust/test_files/string_list/deserialize/lengths_4_4.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_0_0.bin create mode 100644 test/rust/test_files/string_list/serialize/lengths_0_0.dbg.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_0_0.dump.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_0_0.json create mode 100644 test/rust/test_files/string_list/serialize/lengths_0_1.bin create mode 100644 test/rust/test_files/string_list/serialize/lengths_0_1.dbg.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_0_1.dump.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_0_1.json create mode 100644 test/rust/test_files/string_list/serialize/lengths_0_2.bin create mode 100644 test/rust/test_files/string_list/serialize/lengths_0_2.dbg.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_0_2.dump.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_0_2.json create mode 100644 test/rust/test_files/string_list/serialize/lengths_0_3.bin create mode 100644 test/rust/test_files/string_list/serialize/lengths_0_3.dbg.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_0_3.dump.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_0_3.json create mode 100644 test/rust/test_files/string_list/serialize/lengths_0_4.bin create mode 100644 test/rust/test_files/string_list/serialize/lengths_0_4.dbg.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_0_4.dump.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_0_4.json create mode 100644 test/rust/test_files/string_list/serialize/lengths_1_0.bin create mode 100644 test/rust/test_files/string_list/serialize/lengths_1_0.dbg.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_1_0.dump.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_1_0.json create mode 100644 test/rust/test_files/string_list/serialize/lengths_1_1.bin create mode 100644 test/rust/test_files/string_list/serialize/lengths_1_1.dbg.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_1_1.dump.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_1_1.json create mode 100644 test/rust/test_files/string_list/serialize/lengths_1_2.bin create mode 100644 test/rust/test_files/string_list/serialize/lengths_1_2.dbg.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_1_2.dump.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_1_2.json create mode 100644 test/rust/test_files/string_list/serialize/lengths_1_3.bin create mode 100644 test/rust/test_files/string_list/serialize/lengths_1_3.dbg.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_1_3.dump.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_1_3.json create mode 100644 test/rust/test_files/string_list/serialize/lengths_1_4.bin create mode 100644 test/rust/test_files/string_list/serialize/lengths_1_4.dbg.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_1_4.dump.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_1_4.json create mode 100644 test/rust/test_files/string_list/serialize/lengths_2_0.bin create mode 100644 test/rust/test_files/string_list/serialize/lengths_2_0.dbg.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_2_0.dump.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_2_0.json create mode 100644 test/rust/test_files/string_list/serialize/lengths_2_1.bin create mode 100644 test/rust/test_files/string_list/serialize/lengths_2_1.dbg.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_2_1.dump.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_2_1.json create mode 100644 test/rust/test_files/string_list/serialize/lengths_2_2.bin create mode 100644 test/rust/test_files/string_list/serialize/lengths_2_2.dbg.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_2_2.dump.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_2_2.json create mode 100644 test/rust/test_files/string_list/serialize/lengths_2_3.bin create mode 100644 test/rust/test_files/string_list/serialize/lengths_2_3.dbg.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_2_3.dump.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_2_3.json create mode 100644 test/rust/test_files/string_list/serialize/lengths_2_4.bin create mode 100644 test/rust/test_files/string_list/serialize/lengths_2_4.dbg.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_2_4.dump.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_2_4.json create mode 100644 test/rust/test_files/string_list/serialize/lengths_3_0.bin create mode 100644 test/rust/test_files/string_list/serialize/lengths_3_0.dbg.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_3_0.dump.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_3_0.json create mode 100644 test/rust/test_files/string_list/serialize/lengths_3_1.bin create mode 100644 test/rust/test_files/string_list/serialize/lengths_3_1.dbg.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_3_1.dump.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_3_1.json create mode 100644 test/rust/test_files/string_list/serialize/lengths_3_2.bin create mode 100644 test/rust/test_files/string_list/serialize/lengths_3_2.dbg.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_3_2.dump.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_3_2.json create mode 100644 test/rust/test_files/string_list/serialize/lengths_3_3.bin create mode 100644 test/rust/test_files/string_list/serialize/lengths_3_3.dbg.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_3_3.dump.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_3_3.json create mode 100644 test/rust/test_files/string_list/serialize/lengths_3_4.bin create mode 100644 test/rust/test_files/string_list/serialize/lengths_3_4.dbg.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_3_4.dump.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_3_4.json create mode 100644 test/rust/test_files/string_list/serialize/lengths_4_0.bin create mode 100644 test/rust/test_files/string_list/serialize/lengths_4_0.dbg.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_4_0.dump.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_4_0.json create mode 100644 test/rust/test_files/string_list/serialize/lengths_4_1.bin create mode 100644 test/rust/test_files/string_list/serialize/lengths_4_1.dbg.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_4_1.dump.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_4_1.json create mode 100644 test/rust/test_files/string_list/serialize/lengths_4_2.bin create mode 100644 test/rust/test_files/string_list/serialize/lengths_4_2.dbg.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_4_2.dump.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_4_2.json create mode 100644 test/rust/test_files/string_list/serialize/lengths_4_3.bin create mode 100644 test/rust/test_files/string_list/serialize/lengths_4_3.dbg.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_4_3.dump.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_4_3.json create mode 100644 test/rust/test_files/string_list/serialize/lengths_4_4.bin create mode 100644 test/rust/test_files/string_list/serialize/lengths_4_4.dbg.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_4_4.dump.txt create mode 100644 test/rust/test_files/string_list/serialize/lengths_4_4.json create mode 100644 test/rust/test_files/strings.fbs create mode 100644 test/rust/test_files/strings/deserialize/invalid_0_0.bin create mode 100644 test/rust/test_files/strings/deserialize/invalid_0_0.txt create mode 100644 test/rust/test_files/strings/deserialize/invalid_0_1.bin create mode 100644 test/rust/test_files/strings/deserialize/invalid_0_1.txt create mode 100644 test/rust/test_files/strings/deserialize/invalid_0_2.bin create mode 100644 test/rust/test_files/strings/deserialize/invalid_0_2.txt create mode 100644 test/rust/test_files/strings/deserialize/invalid_0_3.bin create mode 100644 test/rust/test_files/strings/deserialize/invalid_0_3.txt create mode 100644 test/rust/test_files/strings/deserialize/invalid_0_4.bin create mode 100644 test/rust/test_files/strings/deserialize/invalid_0_4.txt create mode 100644 test/rust/test_files/strings/deserialize/invalid_1_0.bin create mode 100644 test/rust/test_files/strings/deserialize/invalid_1_0.txt create mode 100644 test/rust/test_files/strings/deserialize/invalid_1_1.bin create mode 100644 test/rust/test_files/strings/deserialize/invalid_1_1.txt create mode 100644 test/rust/test_files/strings/deserialize/invalid_1_2.bin create mode 100644 test/rust/test_files/strings/deserialize/invalid_1_2.txt create mode 100644 test/rust/test_files/strings/deserialize/invalid_1_3.bin create mode 100644 test/rust/test_files/strings/deserialize/invalid_1_3.txt create mode 100644 test/rust/test_files/strings/deserialize/invalid_1_4.bin create mode 100644 test/rust/test_files/strings/deserialize/invalid_1_4.txt create mode 100644 test/rust/test_files/strings/deserialize/invalid_2_0.bin create mode 100644 test/rust/test_files/strings/deserialize/invalid_2_0.txt create mode 100644 test/rust/test_files/strings/deserialize/invalid_2_1.bin create mode 100644 test/rust/test_files/strings/deserialize/invalid_2_1.txt create mode 100644 test/rust/test_files/strings/deserialize/invalid_2_2.bin create mode 100644 test/rust/test_files/strings/deserialize/invalid_2_2.txt create mode 100644 test/rust/test_files/strings/deserialize/invalid_2_3.bin create mode 100644 test/rust/test_files/strings/deserialize/invalid_2_3.txt create mode 100644 test/rust/test_files/strings/deserialize/invalid_2_4.bin create mode 100644 test/rust/test_files/strings/deserialize/invalid_2_4.txt create mode 100644 test/rust/test_files/strings/deserialize/invalid_3_0.bin create mode 100644 test/rust/test_files/strings/deserialize/invalid_3_0.txt create mode 100644 test/rust/test_files/strings/deserialize/invalid_3_1.bin create mode 100644 test/rust/test_files/strings/deserialize/invalid_3_1.txt create mode 100644 test/rust/test_files/strings/deserialize/invalid_3_2.bin create mode 100644 test/rust/test_files/strings/deserialize/invalid_3_2.txt create mode 100644 test/rust/test_files/strings/deserialize/invalid_3_3.bin create mode 100644 test/rust/test_files/strings/deserialize/invalid_3_3.txt create mode 100644 test/rust/test_files/strings/deserialize/invalid_3_4.bin create mode 100644 test/rust/test_files/strings/deserialize/invalid_3_4.txt create mode 100644 test/rust/test_files/strings/deserialize/invalid_4_0.bin create mode 100644 test/rust/test_files/strings/deserialize/invalid_4_0.txt create mode 100644 test/rust/test_files/strings/deserialize/invalid_4_1.bin create mode 100644 test/rust/test_files/strings/deserialize/invalid_4_1.txt create mode 100644 test/rust/test_files/strings/deserialize/invalid_4_2.bin create mode 100644 test/rust/test_files/strings/deserialize/invalid_4_2.txt create mode 100644 test/rust/test_files/strings/deserialize/invalid_4_3.bin create mode 100644 test/rust/test_files/strings/deserialize/invalid_4_3.txt create mode 100644 test/rust/test_files/strings/deserialize/invalid_4_4.bin create mode 100644 test/rust/test_files/strings/deserialize/invalid_4_4.txt create mode 100644 test/rust/test_files/strings/deserialize/lengths_0_0.bin create mode 100644 test/rust/test_files/strings/deserialize/lengths_0_0.txt create mode 100644 test/rust/test_files/strings/deserialize/lengths_0_1.bin create mode 100644 test/rust/test_files/strings/deserialize/lengths_0_1.txt create mode 100644 test/rust/test_files/strings/deserialize/lengths_0_2.bin create mode 100644 test/rust/test_files/strings/deserialize/lengths_0_2.txt create mode 100644 test/rust/test_files/strings/deserialize/lengths_0_3.bin create mode 100644 test/rust/test_files/strings/deserialize/lengths_0_3.txt create mode 100644 test/rust/test_files/strings/deserialize/lengths_0_4.bin create mode 100644 test/rust/test_files/strings/deserialize/lengths_0_4.txt create mode 100644 test/rust/test_files/strings/deserialize/lengths_1_0.bin create mode 100644 test/rust/test_files/strings/deserialize/lengths_1_0.txt create mode 100644 test/rust/test_files/strings/deserialize/lengths_1_1.bin create mode 100644 test/rust/test_files/strings/deserialize/lengths_1_1.txt create mode 100644 test/rust/test_files/strings/deserialize/lengths_1_2.bin create mode 100644 test/rust/test_files/strings/deserialize/lengths_1_2.txt create mode 100644 test/rust/test_files/strings/deserialize/lengths_1_3.bin create mode 100644 test/rust/test_files/strings/deserialize/lengths_1_3.txt create mode 100644 test/rust/test_files/strings/deserialize/lengths_1_4.bin create mode 100644 test/rust/test_files/strings/deserialize/lengths_1_4.txt create mode 100644 test/rust/test_files/strings/deserialize/lengths_2_0.bin create mode 100644 test/rust/test_files/strings/deserialize/lengths_2_0.txt create mode 100644 test/rust/test_files/strings/deserialize/lengths_2_1.bin create mode 100644 test/rust/test_files/strings/deserialize/lengths_2_1.txt create mode 100644 test/rust/test_files/strings/deserialize/lengths_2_2.bin create mode 100644 test/rust/test_files/strings/deserialize/lengths_2_2.txt create mode 100644 test/rust/test_files/strings/deserialize/lengths_2_3.bin create mode 100644 test/rust/test_files/strings/deserialize/lengths_2_3.txt create mode 100644 test/rust/test_files/strings/deserialize/lengths_2_4.bin create mode 100644 test/rust/test_files/strings/deserialize/lengths_2_4.txt create mode 100644 test/rust/test_files/strings/deserialize/lengths_3_0.bin create mode 100644 test/rust/test_files/strings/deserialize/lengths_3_0.txt create mode 100644 test/rust/test_files/strings/deserialize/lengths_3_1.bin create mode 100644 test/rust/test_files/strings/deserialize/lengths_3_1.txt create mode 100644 test/rust/test_files/strings/deserialize/lengths_3_2.bin create mode 100644 test/rust/test_files/strings/deserialize/lengths_3_2.txt create mode 100644 test/rust/test_files/strings/deserialize/lengths_3_3.bin create mode 100644 test/rust/test_files/strings/deserialize/lengths_3_3.txt create mode 100644 test/rust/test_files/strings/deserialize/lengths_3_4.bin create mode 100644 test/rust/test_files/strings/deserialize/lengths_3_4.txt create mode 100644 test/rust/test_files/strings/deserialize/lengths_4_0.bin create mode 100644 test/rust/test_files/strings/deserialize/lengths_4_0.txt create mode 100644 test/rust/test_files/strings/deserialize/lengths_4_1.bin create mode 100644 test/rust/test_files/strings/deserialize/lengths_4_1.txt create mode 100644 test/rust/test_files/strings/deserialize/lengths_4_2.bin create mode 100644 test/rust/test_files/strings/deserialize/lengths_4_2.txt create mode 100644 test/rust/test_files/strings/deserialize/lengths_4_3.bin create mode 100644 test/rust/test_files/strings/deserialize/lengths_4_3.txt create mode 100644 test/rust/test_files/strings/deserialize/lengths_4_4.bin create mode 100644 test/rust/test_files/strings/deserialize/lengths_4_4.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_0_0.bin create mode 100644 test/rust/test_files/strings/serialize/lengths_0_0.dbg.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_0_0.dump.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_0_0.json create mode 100644 test/rust/test_files/strings/serialize/lengths_0_1.bin create mode 100644 test/rust/test_files/strings/serialize/lengths_0_1.dbg.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_0_1.dump.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_0_1.json create mode 100644 test/rust/test_files/strings/serialize/lengths_0_2.bin create mode 100644 test/rust/test_files/strings/serialize/lengths_0_2.dbg.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_0_2.dump.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_0_2.json create mode 100644 test/rust/test_files/strings/serialize/lengths_0_3.bin create mode 100644 test/rust/test_files/strings/serialize/lengths_0_3.dbg.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_0_3.dump.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_0_3.json create mode 100644 test/rust/test_files/strings/serialize/lengths_0_4.bin create mode 100644 test/rust/test_files/strings/serialize/lengths_0_4.dbg.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_0_4.dump.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_0_4.json create mode 100644 test/rust/test_files/strings/serialize/lengths_1_0.bin create mode 100644 test/rust/test_files/strings/serialize/lengths_1_0.dbg.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_1_0.dump.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_1_0.json create mode 100644 test/rust/test_files/strings/serialize/lengths_1_1.bin create mode 100644 test/rust/test_files/strings/serialize/lengths_1_1.dbg.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_1_1.dump.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_1_1.json create mode 100644 test/rust/test_files/strings/serialize/lengths_1_2.bin create mode 100644 test/rust/test_files/strings/serialize/lengths_1_2.dbg.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_1_2.dump.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_1_2.json create mode 100644 test/rust/test_files/strings/serialize/lengths_1_3.bin create mode 100644 test/rust/test_files/strings/serialize/lengths_1_3.dbg.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_1_3.dump.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_1_3.json create mode 100644 test/rust/test_files/strings/serialize/lengths_1_4.bin create mode 100644 test/rust/test_files/strings/serialize/lengths_1_4.dbg.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_1_4.dump.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_1_4.json create mode 100644 test/rust/test_files/strings/serialize/lengths_2_0.bin create mode 100644 test/rust/test_files/strings/serialize/lengths_2_0.dbg.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_2_0.dump.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_2_0.json create mode 100644 test/rust/test_files/strings/serialize/lengths_2_1.bin create mode 100644 test/rust/test_files/strings/serialize/lengths_2_1.dbg.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_2_1.dump.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_2_1.json create mode 100644 test/rust/test_files/strings/serialize/lengths_2_2.bin create mode 100644 test/rust/test_files/strings/serialize/lengths_2_2.dbg.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_2_2.dump.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_2_2.json create mode 100644 test/rust/test_files/strings/serialize/lengths_2_3.bin create mode 100644 test/rust/test_files/strings/serialize/lengths_2_3.dbg.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_2_3.dump.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_2_3.json create mode 100644 test/rust/test_files/strings/serialize/lengths_2_4.bin create mode 100644 test/rust/test_files/strings/serialize/lengths_2_4.dbg.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_2_4.dump.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_2_4.json create mode 100644 test/rust/test_files/strings/serialize/lengths_3_0.bin create mode 100644 test/rust/test_files/strings/serialize/lengths_3_0.dbg.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_3_0.dump.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_3_0.json create mode 100644 test/rust/test_files/strings/serialize/lengths_3_1.bin create mode 100644 test/rust/test_files/strings/serialize/lengths_3_1.dbg.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_3_1.dump.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_3_1.json create mode 100644 test/rust/test_files/strings/serialize/lengths_3_2.bin create mode 100644 test/rust/test_files/strings/serialize/lengths_3_2.dbg.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_3_2.dump.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_3_2.json create mode 100644 test/rust/test_files/strings/serialize/lengths_3_3.bin create mode 100644 test/rust/test_files/strings/serialize/lengths_3_3.dbg.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_3_3.dump.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_3_3.json create mode 100644 test/rust/test_files/strings/serialize/lengths_3_4.bin create mode 100644 test/rust/test_files/strings/serialize/lengths_3_4.dbg.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_3_4.dump.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_3_4.json create mode 100644 test/rust/test_files/strings/serialize/lengths_4_0.bin create mode 100644 test/rust/test_files/strings/serialize/lengths_4_0.dbg.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_4_0.dump.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_4_0.json create mode 100644 test/rust/test_files/strings/serialize/lengths_4_1.bin create mode 100644 test/rust/test_files/strings/serialize/lengths_4_1.dbg.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_4_1.dump.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_4_1.json create mode 100644 test/rust/test_files/strings/serialize/lengths_4_2.bin create mode 100644 test/rust/test_files/strings/serialize/lengths_4_2.dbg.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_4_2.dump.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_4_2.json create mode 100644 test/rust/test_files/strings/serialize/lengths_4_3.bin create mode 100644 test/rust/test_files/strings/serialize/lengths_4_3.dbg.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_4_3.dump.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_4_3.json create mode 100644 test/rust/test_files/strings/serialize/lengths_4_4.bin create mode 100644 test/rust/test_files/strings/serialize/lengths_4_4.dbg.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_4_4.dump.txt create mode 100644 test/rust/test_files/strings/serialize/lengths_4_4.json diff --git a/planus-cli/src/codegen/templates/rust/table.template b/planus-cli/src/codegen/templates/rust/table.template index 134397ed..385ff118 100644 --- a/planus-cli/src/codegen/templates/rust/table.template +++ b/planus-cli/src/codegen/templates/rust/table.template @@ -121,13 +121,11 @@ impl<'a> ::core::fmt::Debug for {{info.ref_name}}<'a> { let mut f = f.debug_struct("{{info.ref_name}}"); {% for field in fields.declaration_order() -%} {%- if field.info.read_type.starts_with("::core::option::Option<") -%} - if let ::core::result::Result::Ok(::core::option::Option::Some({{field.info.name}})) = self.{{field.info.name}}() { + if let ::core::option::Option::Some({{field.info.name}}) = self.{{field.info.name}}().transpose() { f.field("{{field.info.name}}", &{{field.info.name}}); } {%- else -%} - if let ::core::result::Result::Ok({{field.info.name}}) = self.{{field.info.name}}() { - f.field("{{field.info.name}}", &{{field.info.name}}); - } + f.field("{{field.info.name}}", &self.{{field.info.name}}()); {%- endif -%} {%- endfor %} f.finish() diff --git a/planus/Cargo.toml b/planus/Cargo.toml index 70e5e966..b6f94db6 100644 --- a/planus/Cargo.toml +++ b/planus/Cargo.toml @@ -19,3 +19,4 @@ rand = "0.8.4" [features] default = ["std"] std = [] +extra-validation = [] diff --git a/planus/src/errors.rs b/planus/src/errors.rs index c4921d6c..5b54ba98 100644 --- a/planus/src/errors.rs +++ b/planus/src/errors.rs @@ -18,6 +18,7 @@ impl std::error::Error for Error { } #[derive(Copy, Clone, Debug)] +#[non_exhaustive] pub enum ErrorKind { InvalidOffset, InvalidLength, @@ -26,6 +27,7 @@ pub enum ErrorKind { InvalidVtableLength { length: u16 }, InvalidUtf8 { source: core::str::Utf8Error }, MissingRequired, + MissingNullTerminator, } impl core::fmt::Display for ErrorKind { @@ -40,6 +42,7 @@ impl core::fmt::Display for ErrorKind { } ErrorKind::InvalidUtf8 { source } => write!(f, "Invalid utf-8: {}", source), ErrorKind::MissingRequired => write!(f, "Missing required field"), + ErrorKind::MissingNullTerminator => write!(f, "Missing null terminator"), } } } @@ -55,6 +58,7 @@ impl std::error::Error for ErrorKind { ErrorKind::InvalidVtableLength { .. } => None, ErrorKind::InvalidUtf8 { source } => Some(source), ErrorKind::MissingRequired => None, + ErrorKind::MissingNullTerminator => None, } } } diff --git a/planus/src/lib.rs b/planus/src/lib.rs index a3c6531a..5e7451de 100644 --- a/planus/src/lib.rs +++ b/planus/src/lib.rs @@ -12,7 +12,7 @@ pub mod table_reader; #[doc(hidden)] pub mod table_writer; -use alloc::{borrow::Cow, boxed::Box, string::String, vec::Vec}; +use alloc::{boxed::Box, string::String, vec::Vec}; use core::{convert::TryInto, marker::PhantomData, mem::MaybeUninit}; pub use errors::Error; @@ -905,7 +905,11 @@ where } unsafe { builder.write_with( - 4 + T::STRIDE.checked_mul(self.len()).unwrap(), + T::STRIDE + .checked_mul(self.len()) + .unwrap() + .checked_add(4) + .unwrap(), P::ALIGNMENT_MASK.max(3), |buffer_position, bytes| { let bytes = bytes.as_mut_ptr(); @@ -1069,11 +1073,27 @@ impl WriteAsOptional> for str { impl WriteAsOffset for str { #[inline] fn prepare(&self, builder: &mut Builder) -> Offset { - let offset = <[u8] as WriteAsOffset<[u8]>>::prepare(self.as_bytes(), builder); - Offset { - offset: offset.offset, - phantom: PhantomData, - } + unsafe { + builder.write_with( + self.len().checked_add(5).unwrap(), + 3, + |buffer_position, bytes| { + let bytes = bytes.as_mut_ptr(); + + (self.len() as u32).write( + Cursor::new(&mut *(bytes as *mut [MaybeUninit; 4])), + buffer_position, + ); + std::ptr::copy_nonoverlapping( + self.as_bytes().as_ptr() as *const MaybeUninit, + bytes.add(4), + self.len(), + ); + bytes.add(4 + self.len()).write(MaybeUninit::new(0)); + }, + ) + }; + builder.current_offset() } } @@ -1096,6 +1116,10 @@ impl<'buf> VectorRead<'buf> for str { let add_context = |e: ErrorKind| e.with_error_location("[str]", "get", buffer.offset_from_start); let (slice, len) = array_from_buffer(buffer, offset).map_err(add_context)?; + #[cfg(feature = "extra-validation")] + if slice.as_slice().get(len) != Some(&0) { + return Err(add_context(ErrorKind::MissingNullTerminator)); + } let slice = slice .as_slice() .get(..len) @@ -1138,7 +1162,15 @@ impl<'buf> TableRead<'buf> for &'buf str { buffer: SliceWithStartOffset<'buf>, offset: usize, ) -> core::result::Result { - let slice: &[u8] = TableRead::from_buffer(buffer, offset)?; + let (buffer, len) = array_from_buffer(buffer, offset)?; + #[cfg(feature = "extra-validation")] + if buffer.as_slice().get(len) != Some(&0) { + return Err(ErrorKind::MissingNullTerminator); + } + let slice = buffer + .as_slice() + .get(..len) + .ok_or(ErrorKind::InvalidLength)?; Ok(core::str::from_utf8(slice)?) } } @@ -1223,13 +1255,3 @@ impl<'buf> TableRead<'buf> for &'buf [u8] { buffer.as_slice().get(..len).ok_or(ErrorKind::InvalidLength) } } - -impl<'buf> TableRead<'buf> for Cow<'buf, str> { - fn from_buffer( - buffer: SliceWithStartOffset<'buf>, - offset: usize, - ) -> core::result::Result { - let bytes = <&'buf [u8] as TableRead<'buf>>::from_buffer(buffer, offset)?; - Ok(String::from_utf8_lossy(bytes)) - } -} diff --git a/test/rust/Cargo.toml b/test/rust/Cargo.toml index 6b65cc4d..6ce029e1 100644 --- a/test/rust/Cargo.toml +++ b/test/rust/Cargo.toml @@ -4,12 +4,12 @@ version = "0.1.0" edition = "2021" license = "MIT/Apache-2.0" repository = "https://github.com/TethysSvensson/planus" -build="build.rs" +build = "build.rs" rust-version = "1.57" [dependencies] anyhow = "1.0.51" -planus = { path = "../../planus" } +planus = { path = "../../planus", features = ["extra-validation"] } flatbuffers = "0.8.4" serde = "1.0.132" diff --git a/test/rust/test_files/deprecated/deserialize/contains_deprecated_data.txt b/test/rust/test_files/deprecated/deserialize/contains_deprecated_data.txt index 151451f9..893e8ef9 100644 --- a/test/rust/test_files/deprecated/deserialize/contains_deprecated_data.txt +++ b/test/rust/test_files/deprecated/deserialize/contains_deprecated_data.txt @@ -1,4 +1,8 @@ RootRef { - x: 1, - z: 3, + x: Ok( + 1, + ), + z: Ok( + 3, + ), } \ No newline at end of file diff --git a/test/rust/test_files/deprecated/deserialize/simple.txt b/test/rust/test_files/deprecated/deserialize/simple.txt index 2e59ed52..8b358050 100644 --- a/test/rust/test_files/deprecated/deserialize/simple.txt +++ b/test/rust/test_files/deprecated/deserialize/simple.txt @@ -1,4 +1,8 @@ RootRef { - x: 1, - z: 2, + x: Ok( + 1, + ), + z: Ok( + 2, + ), } \ No newline at end of file diff --git a/test/rust/test_files/enums/deserialize/change_uint13_Y.txt b/test/rust/test_files/enums/deserialize/change_uint13_Y.txt index de48b545..f4d993f9 100644 --- a/test/rust/test_files/enums/deserialize/change_uint13_Y.txt +++ b/test/rust/test_files/enums/deserialize/change_uint13_Y.txt @@ -1,33 +1,95 @@ RootRef { - field_uint1: X, - field_uint2: X, - field_uint3: X, - field_uint4: X, - field_uint5: X, - field_uint6: X, - field_uint7: X, - field_uint8: X, - field_uint10: X, - field_uint11: Y, - field_uint12: Z, - field_uint13: Y, - field_uint14: X, - field_uint15: Y, - field_uint16: X, - field_int1: X, - field_int2: X, - field_int3: X, - field_int4: X, - field_int5: X, - field_int6: X, - field_int7: X, - field_int8: X, - field_int10: X, - field_int11: Y, - field_int12: Z, - field_int13: X, - field_int14: X, - field_int15: Y, - field_int16: X, - filler: 1, + field_uint1: Ok( + X, + ), + field_uint2: Ok( + X, + ), + field_uint3: Ok( + X, + ), + field_uint4: Ok( + X, + ), + field_uint5: Ok( + X, + ), + field_uint6: Ok( + X, + ), + field_uint7: Ok( + X, + ), + field_uint8: Ok( + X, + ), + field_uint10: Ok( + X, + ), + field_uint11: Ok( + Y, + ), + field_uint12: Ok( + Z, + ), + field_uint13: Ok( + Y, + ), + field_uint14: Ok( + X, + ), + field_uint15: Ok( + Y, + ), + field_uint16: Ok( + X, + ), + field_int1: Ok( + X, + ), + field_int2: Ok( + X, + ), + field_int3: Ok( + X, + ), + field_int4: Ok( + X, + ), + field_int5: Ok( + X, + ), + field_int6: Ok( + X, + ), + field_int7: Ok( + X, + ), + field_int8: Ok( + X, + ), + field_int10: Ok( + X, + ), + field_int11: Ok( + Y, + ), + field_int12: Ok( + Z, + ), + field_int13: Ok( + X, + ), + field_int14: Ok( + X, + ), + field_int15: Ok( + Y, + ), + field_int16: Ok( + X, + ), + filler: Ok( + 1, + ), } \ No newline at end of file diff --git a/test/rust/test_files/ids/deserialize/simple.txt b/test/rust/test_files/ids/deserialize/simple.txt index 64c66687..0c7170cf 100644 --- a/test/rust/test_files/ids/deserialize/simple.txt +++ b/test/rust/test_files/ids/deserialize/simple.txt @@ -1,10 +1,20 @@ RootRef { - v1: 1, - v2: 2, - v3: InnerType( - InnerTypeRef { - v3_inner: 3, - }, - ), - v4: 4, + v1: Ok( + 1, + ), + v2: Ok( + 2, + ), + v3: Ok( + InnerType( + InnerTypeRef { + v3_inner: Ok( + 3, + ), + }, + ), + ), + v4: Ok( + 4, + ), } \ No newline at end of file diff --git a/test/rust/test_files/string_list.fbs b/test/rust/test_files/string_list.fbs new file mode 100644 index 00000000..3567a269 --- /dev/null +++ b/test/rust/test_files/string_list.fbs @@ -0,0 +1,3 @@ +table Root { + x: [string]; +} diff --git a/test/rust/test_files/string_list/deserialize/invalid_0_0.bin b/test/rust/test_files/string_list/deserialize/invalid_0_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..19efcde31807cbdd1159aa5499efe36a0352f5c2 GIT binary patch literal 40 jcmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%f%q&SAt(R>w*5HkXC1rUP(0HOi}r2qf` literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/deserialize/invalid_0_1.txt b/test/rust/test_files/string_list/deserialize/invalid_0_1.txt new file mode 100644 index 00000000..d0f47660 --- /dev/null +++ b/test/rust/test_files/string_list/deserialize/invalid_0_1.txt @@ -0,0 +1,19 @@ +RootRef { + x: Ok( + [ + Err( + Error { + source_location: ErrorLocation { + type_: "[str]", + method: "get", + byte_offset: 24, + }, + error_kind: MissingNullTerminator, + }, + ), + Ok( + "x", + ), + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/deserialize/invalid_0_2.bin b/test/rust/test_files/string_list/deserialize/invalid_0_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..41da41b82546ae7b53c97cf9c0d26553add4a999 GIT binary patch literal 44 ocmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*5QEqil|TXr0Hs|89{>OV literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/deserialize/invalid_0_2.txt b/test/rust/test_files/string_list/deserialize/invalid_0_2.txt new file mode 100644 index 00000000..392f143b --- /dev/null +++ b/test/rust/test_files/string_list/deserialize/invalid_0_2.txt @@ -0,0 +1,19 @@ +RootRef { + x: Ok( + [ + Err( + Error { + source_location: ErrorLocation { + type_: "[str]", + method: "get", + byte_offset: 24, + }, + error_kind: MissingNullTerminator, + }, + ), + Ok( + "xy", + ), + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/deserialize/invalid_0_3.bin b/test/rust/test_files/string_list/deserialize/invalid_0_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..ecc5fcb3ab04c6f622fd6b92bd106b48f27d5017 GIT binary patch literal 44 rcmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*5HkaDMP(I`WMBXQs6_>u literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/deserialize/invalid_0_3.txt b/test/rust/test_files/string_list/deserialize/invalid_0_3.txt new file mode 100644 index 00000000..dfb376a5 --- /dev/null +++ b/test/rust/test_files/string_list/deserialize/invalid_0_3.txt @@ -0,0 +1,19 @@ +RootRef { + x: Ok( + [ + Err( + Error { + source_location: ErrorLocation { + type_: "[str]", + method: "get", + byte_offset: 24, + }, + error_kind: MissingNullTerminator, + }, + ), + Ok( + "xyz", + ), + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/deserialize/invalid_0_4.bin b/test/rust/test_files/string_list/deserialize/invalid_0_4.bin new file mode 100644 index 0000000000000000000000000000000000000000..d7f7df6bbb6328d817bff7b65acc93971409aebf GIT binary patch literal 44 ocmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*6jxMMl>?a!0IH-05&!@I literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/deserialize/invalid_0_4.txt b/test/rust/test_files/string_list/deserialize/invalid_0_4.txt new file mode 100644 index 00000000..fbd48eb1 --- /dev/null +++ b/test/rust/test_files/string_list/deserialize/invalid_0_4.txt @@ -0,0 +1,19 @@ +RootRef { + x: Ok( + [ + Err( + Error { + source_location: ErrorLocation { + type_: "[str]", + method: "get", + byte_offset: 24, + }, + error_kind: MissingNullTerminator, + }, + ), + Ok( + "xyzw", + ), + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/deserialize/invalid_1_0.bin b/test/rust/test_files/string_list/deserialize/invalid_1_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..cdc75c3a14a96a89aa1b4945f35555fcbd99d5a1 GIT binary patch literal 41 mcmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%f%q&SAs}D`;zR(E)C7tE literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/deserialize/invalid_1_0.txt b/test/rust/test_files/string_list/deserialize/invalid_1_0.txt new file mode 100644 index 00000000..1f12df97 --- /dev/null +++ b/test/rust/test_files/string_list/deserialize/invalid_1_0.txt @@ -0,0 +1,26 @@ +RootRef { + x: Ok( + [ + Err( + Error { + source_location: ErrorLocation { + type_: "[str]", + method: "get", + byte_offset: 24, + }, + error_kind: MissingNullTerminator, + }, + ), + Err( + Error { + source_location: ErrorLocation { + type_: "[str]", + method: "get", + byte_offset: 28, + }, + error_kind: MissingNullTerminator, + }, + ), + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/deserialize/invalid_1_1.bin b/test/rust/test_files/string_list/deserialize/invalid_1_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..2fa8e665dac7c16d4ade65346a5e3925f3710a13 GIT binary patch literal 45 ocmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*5HkXC1(Z$%0H+NF2LJ#7 literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/deserialize/invalid_1_1.txt b/test/rust/test_files/string_list/deserialize/invalid_1_1.txt new file mode 100644 index 00000000..d0f47660 --- /dev/null +++ b/test/rust/test_files/string_list/deserialize/invalid_1_1.txt @@ -0,0 +1,19 @@ +RootRef { + x: Ok( + [ + Err( + Error { + source_location: ErrorLocation { + type_: "[str]", + method: "get", + byte_offset: 24, + }, + error_kind: MissingNullTerminator, + }, + ), + Ok( + "x", + ), + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/deserialize/invalid_1_2.bin b/test/rust/test_files/string_list/deserialize/invalid_1_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..a5818a00ef6fa40324df3e95fd8308d47b83be0e GIT binary patch literal 45 rcmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*5QEqil?)7wKspfss^SHK literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/deserialize/invalid_1_2.txt b/test/rust/test_files/string_list/deserialize/invalid_1_2.txt new file mode 100644 index 00000000..392f143b --- /dev/null +++ b/test/rust/test_files/string_list/deserialize/invalid_1_2.txt @@ -0,0 +1,19 @@ +RootRef { + x: Ok( + [ + Err( + Error { + source_location: ErrorLocation { + type_: "[str]", + method: "get", + byte_offset: 24, + }, + error_kind: MissingNullTerminator, + }, + ), + Ok( + "xy", + ), + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/deserialize/invalid_1_3.bin b/test/rust/test_files/string_list/deserialize/invalid_1_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..ac00c20ec554e27df6828814ac1f5c6a35dcadd9 GIT binary patch literal 45 scmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*5HkaDMP(HOBalu60Io#^`~Uy| literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/deserialize/invalid_1_3.txt b/test/rust/test_files/string_list/deserialize/invalid_1_3.txt new file mode 100644 index 00000000..dfb376a5 --- /dev/null +++ b/test/rust/test_files/string_list/deserialize/invalid_1_3.txt @@ -0,0 +1,19 @@ +RootRef { + x: Ok( + [ + Err( + Error { + source_location: ErrorLocation { + type_: "[str]", + method: "get", + byte_offset: 24, + }, + error_kind: MissingNullTerminator, + }, + ), + Ok( + "xyz", + ), + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/deserialize/invalid_1_4.bin b/test/rust/test_files/string_list/deserialize/invalid_1_4.bin new file mode 100644 index 0000000000000000000000000000000000000000..ecf54ad72c1d6dd51436a28383c2bdf18ce74b53 GIT binary patch literal 45 pcmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*6jxMMl`{g_i2$)226O-b literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/deserialize/invalid_1_4.txt b/test/rust/test_files/string_list/deserialize/invalid_1_4.txt new file mode 100644 index 00000000..1f12df97 --- /dev/null +++ b/test/rust/test_files/string_list/deserialize/invalid_1_4.txt @@ -0,0 +1,26 @@ +RootRef { + x: Ok( + [ + Err( + Error { + source_location: ErrorLocation { + type_: "[str]", + method: "get", + byte_offset: 24, + }, + error_kind: MissingNullTerminator, + }, + ), + Err( + Error { + source_location: ErrorLocation { + type_: "[str]", + method: "get", + byte_offset: 28, + }, + error_kind: MissingNullTerminator, + }, + ), + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/deserialize/invalid_2_0.bin b/test/rust/test_files/string_list/deserialize/invalid_2_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..4d9c9a5a533fcbb9649f9f7f2c773b63a7b1ebb1 GIT binary patch literal 42 mcmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%f%q&SAs_(p6O#az#suvE literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/deserialize/invalid_2_0.txt b/test/rust/test_files/string_list/deserialize/invalid_2_0.txt new file mode 100644 index 00000000..1f12df97 --- /dev/null +++ b/test/rust/test_files/string_list/deserialize/invalid_2_0.txt @@ -0,0 +1,26 @@ +RootRef { + x: Ok( + [ + Err( + Error { + source_location: ErrorLocation { + type_: "[str]", + method: "get", + byte_offset: 24, + }, + error_kind: MissingNullTerminator, + }, + ), + Err( + Error { + source_location: ErrorLocation { + type_: "[str]", + method: "get", + byte_offset: 28, + }, + error_kind: MissingNullTerminator, + }, + ), + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/deserialize/invalid_2_1.bin b/test/rust/test_files/string_list/deserialize/invalid_2_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..428c1b918dd01c029b4bc79d8b04be651a3b7211 GIT binary patch literal 46 qcmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*5HkXC1rUS85|aR|d>w*5QEqil@K~H2>`Im1>^t# literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/deserialize/invalid_2_2.txt b/test/rust/test_files/string_list/deserialize/invalid_2_2.txt new file mode 100644 index 00000000..392f143b --- /dev/null +++ b/test/rust/test_files/string_list/deserialize/invalid_2_2.txt @@ -0,0 +1,19 @@ +RootRef { + x: Ok( + [ + Err( + Error { + source_location: ErrorLocation { + type_: "[str]", + method: "get", + byte_offset: 24, + }, + error_kind: MissingNullTerminator, + }, + ), + Ok( + "xy", + ), + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/deserialize/invalid_2_3.bin b/test/rust/test_files/string_list/deserialize/invalid_2_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..d895874e07885e02d4c0e1b1d557d343a8fa05c2 GIT binary patch literal 46 rcmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*5HkaDMP(IOEHMcHw5bMP literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/deserialize/invalid_2_3.txt b/test/rust/test_files/string_list/deserialize/invalid_2_3.txt new file mode 100644 index 00000000..dfb376a5 --- /dev/null +++ b/test/rust/test_files/string_list/deserialize/invalid_2_3.txt @@ -0,0 +1,19 @@ +RootRef { + x: Ok( + [ + Err( + Error { + source_location: ErrorLocation { + type_: "[str]", + method: "get", + byte_offset: 24, + }, + error_kind: MissingNullTerminator, + }, + ), + Ok( + "xyz", + ), + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/deserialize/invalid_2_4.bin b/test/rust/test_files/string_list/deserialize/invalid_2_4.bin new file mode 100644 index 0000000000000000000000000000000000000000..d72feb23295fac205dc69d853fa545a5a7969bee GIT binary patch literal 46 pcmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*6jxMMm4n0*lK{8)2G;-p literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/deserialize/invalid_2_4.txt b/test/rust/test_files/string_list/deserialize/invalid_2_4.txt new file mode 100644 index 00000000..1f12df97 --- /dev/null +++ b/test/rust/test_files/string_list/deserialize/invalid_2_4.txt @@ -0,0 +1,26 @@ +RootRef { + x: Ok( + [ + Err( + Error { + source_location: ErrorLocation { + type_: "[str]", + method: "get", + byte_offset: 24, + }, + error_kind: MissingNullTerminator, + }, + ), + Err( + Error { + source_location: ErrorLocation { + type_: "[str]", + method: "get", + byte_offset: 28, + }, + error_kind: MissingNullTerminator, + }, + ), + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/deserialize/invalid_3_0.bin b/test/rust/test_files/string_list/deserialize/invalid_3_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..e6cb7589898e3541b537b94dbc0299eed33c4b59 GIT binary patch literal 43 ocmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%f%q&SAs}D|;>4t60Gu5KQ2+n{ literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/deserialize/invalid_3_0.txt b/test/rust/test_files/string_list/deserialize/invalid_3_0.txt new file mode 100644 index 00000000..1f12df97 --- /dev/null +++ b/test/rust/test_files/string_list/deserialize/invalid_3_0.txt @@ -0,0 +1,26 @@ +RootRef { + x: Ok( + [ + Err( + Error { + source_location: ErrorLocation { + type_: "[str]", + method: "get", + byte_offset: 24, + }, + error_kind: MissingNullTerminator, + }, + ), + Err( + Error { + source_location: ErrorLocation { + type_: "[str]", + method: "get", + byte_offset: 28, + }, + error_kind: MissingNullTerminator, + }, + ), + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/deserialize/invalid_3_1.bin b/test/rust/test_files/string_list/deserialize/invalid_3_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..b8adba2df85b9363a0d19a8eee217542029c7e8f GIT binary patch literal 47 scmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*5HkXC1rRd>abi+30J2a8&Hw-a literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/deserialize/invalid_3_1.txt b/test/rust/test_files/string_list/deserialize/invalid_3_1.txt new file mode 100644 index 00000000..d0f47660 --- /dev/null +++ b/test/rust/test_files/string_list/deserialize/invalid_3_1.txt @@ -0,0 +1,19 @@ +RootRef { + x: Ok( + [ + Err( + Error { + source_location: ErrorLocation { + type_: "[str]", + method: "get", + byte_offset: 24, + }, + error_kind: MissingNullTerminator, + }, + ), + Ok( + "x", + ), + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/deserialize/invalid_3_2.bin b/test/rust/test_files/string_list/deserialize/invalid_3_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..5fc810396113a2f7c313a20f81f1d6b51cc5a6ab GIT binary patch literal 47 tcmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*5QEqil?)8bKsqrg834B#21oz^ literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/deserialize/invalid_3_2.txt b/test/rust/test_files/string_list/deserialize/invalid_3_2.txt new file mode 100644 index 00000000..392f143b --- /dev/null +++ b/test/rust/test_files/string_list/deserialize/invalid_3_2.txt @@ -0,0 +1,19 @@ +RootRef { + x: Ok( + [ + Err( + Error { + source_location: ErrorLocation { + type_: "[str]", + method: "get", + byte_offset: 24, + }, + error_kind: MissingNullTerminator, + }, + ), + Ok( + "xy", + ), + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/deserialize/invalid_3_3.bin b/test/rust/test_files/string_list/deserialize/invalid_3_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..15a7b6947dffddf960698297989efe6e349170b7 GIT binary patch literal 47 scmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*5HkaDMP(J3PE1M$0K0Mq!vFvP literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/deserialize/invalid_3_3.txt b/test/rust/test_files/string_list/deserialize/invalid_3_3.txt new file mode 100644 index 00000000..dfb376a5 --- /dev/null +++ b/test/rust/test_files/string_list/deserialize/invalid_3_3.txt @@ -0,0 +1,19 @@ +RootRef { + x: Ok( + [ + Err( + Error { + source_location: ErrorLocation { + type_: "[str]", + method: "get", + byte_offset: 24, + }, + error_kind: MissingNullTerminator, + }, + ), + Ok( + "xyz", + ), + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/deserialize/invalid_3_4.bin b/test/rust/test_files/string_list/deserialize/invalid_3_4.bin new file mode 100644 index 0000000000000000000000000000000000000000..cec46a213a7ac911dd21cfc6e3eda19a09a23ad0 GIT binary patch literal 47 rcmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*6jxMMl`{j`iAl)-zc~jx literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/deserialize/invalid_3_4.txt b/test/rust/test_files/string_list/deserialize/invalid_3_4.txt new file mode 100644 index 00000000..1f12df97 --- /dev/null +++ b/test/rust/test_files/string_list/deserialize/invalid_3_4.txt @@ -0,0 +1,26 @@ +RootRef { + x: Ok( + [ + Err( + Error { + source_location: ErrorLocation { + type_: "[str]", + method: "get", + byte_offset: 24, + }, + error_kind: MissingNullTerminator, + }, + ), + Err( + Error { + source_location: ErrorLocation { + type_: "[str]", + method: "get", + byte_offset: 28, + }, + error_kind: MissingNullTerminator, + }, + ), + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/deserialize/invalid_4_0.bin b/test/rust/test_files/string_list/deserialize/invalid_4_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..b2caae7cc67514f01175f5330d2b4380734de2c3 GIT binary patch literal 44 ocmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%f%q&SAs_(JiAl*R0HN9iwg3PC literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/deserialize/invalid_4_0.txt b/test/rust/test_files/string_list/deserialize/invalid_4_0.txt new file mode 100644 index 00000000..1f12df97 --- /dev/null +++ b/test/rust/test_files/string_list/deserialize/invalid_4_0.txt @@ -0,0 +1,26 @@ +RootRef { + x: Ok( + [ + Err( + Error { + source_location: ErrorLocation { + type_: "[str]", + method: "get", + byte_offset: 24, + }, + error_kind: MissingNullTerminator, + }, + ), + Err( + Error { + source_location: ErrorLocation { + type_: "[str]", + method: "get", + byte_offset: 28, + }, + error_kind: MissingNullTerminator, + }, + ), + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/deserialize/invalid_4_1.bin b/test/rust/test_files/string_list/deserialize/invalid_4_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..a9207baa340b568755f6029208c6a99529e3dbff GIT binary patch literal 48 rcmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*5HkXC1(cnbl$-(pxQYfd literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/deserialize/invalid_4_1.txt b/test/rust/test_files/string_list/deserialize/invalid_4_1.txt new file mode 100644 index 00000000..d0f47660 --- /dev/null +++ b/test/rust/test_files/string_list/deserialize/invalid_4_1.txt @@ -0,0 +1,19 @@ +RootRef { + x: Ok( + [ + Err( + Error { + source_location: ErrorLocation { + type_: "[str]", + method: "get", + byte_offset: 24, + }, + error_kind: MissingNullTerminator, + }, + ), + Ok( + "x", + ), + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/deserialize/invalid_4_2.bin b/test/rust/test_files/string_list/deserialize/invalid_4_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..5057f44d730a49fbe5cfe9507a0e1779503327e3 GIT binary patch literal 48 rcmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*5QEqil@NAfQgR9az0C%# literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/deserialize/invalid_4_2.txt b/test/rust/test_files/string_list/deserialize/invalid_4_2.txt new file mode 100644 index 00000000..392f143b --- /dev/null +++ b/test/rust/test_files/string_list/deserialize/invalid_4_2.txt @@ -0,0 +1,19 @@ +RootRef { + x: Ok( + [ + Err( + Error { + source_location: ErrorLocation { + type_: "[str]", + method: "get", + byte_offset: 24, + }, + error_kind: MissingNullTerminator, + }, + ), + Ok( + "xy", + ), + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/deserialize/invalid_4_3.bin b/test/rust/test_files/string_list/deserialize/invalid_4_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..9f7aaecc30a0a02c712bbf56123035289ac5acfe GIT binary patch literal 48 tcmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*5HkaDMP(J3otTuI0sz9H2Pgml literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/deserialize/invalid_4_3.txt b/test/rust/test_files/string_list/deserialize/invalid_4_3.txt new file mode 100644 index 00000000..dfb376a5 --- /dev/null +++ b/test/rust/test_files/string_list/deserialize/invalid_4_3.txt @@ -0,0 +1,19 @@ +RootRef { + x: Ok( + [ + Err( + Error { + source_location: ErrorLocation { + type_: "[str]", + method: "get", + byte_offset: 24, + }, + error_kind: MissingNullTerminator, + }, + ), + Ok( + "xyz", + ), + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/deserialize/invalid_4_4.bin b/test/rust/test_files/string_list/deserialize/invalid_4_4.bin new file mode 100644 index 0000000000000000000000000000000000000000..c893c3df7c5e1545d86649d3180e9d25a06b3302 GIT binary patch literal 48 rcmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*6jxMMm4n!cNy#Yy#^48_ literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/deserialize/invalid_4_4.txt b/test/rust/test_files/string_list/deserialize/invalid_4_4.txt new file mode 100644 index 00000000..1f12df97 --- /dev/null +++ b/test/rust/test_files/string_list/deserialize/invalid_4_4.txt @@ -0,0 +1,26 @@ +RootRef { + x: Ok( + [ + Err( + Error { + source_location: ErrorLocation { + type_: "[str]", + method: "get", + byte_offset: 24, + }, + error_kind: MissingNullTerminator, + }, + ), + Err( + Error { + source_location: ErrorLocation { + type_: "[str]", + method: "get", + byte_offset: 28, + }, + error_kind: MissingNullTerminator, + }, + ), + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/deserialize/lengths_0_0.bin b/test/rust/test_files/string_list/deserialize/lengths_0_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..db08ff428ba74b18208d9d2bb1b1b33af15615f0 GIT binary patch literal 45 kcmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*NC+7K0HR_9EC2ui literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/deserialize/lengths_0_0.txt b/test/rust/test_files/string_list/deserialize/lengths_0_0.txt new file mode 100644 index 00000000..599b580a --- /dev/null +++ b/test/rust/test_files/string_list/deserialize/lengths_0_0.txt @@ -0,0 +1,12 @@ +RootRef { + x: Ok( + [ + Ok( + "", + ), + Ok( + "", + ), + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/deserialize/lengths_0_1.bin b/test/rust/test_files/string_list/deserialize/lengths_0_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..e7fea1eabb1a7fa6dda752b69d08f8fdc45fc681 GIT binary patch literal 45 ocmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*5HkXC1rUP)0H&t|r2qf` literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/deserialize/lengths_0_1.txt b/test/rust/test_files/string_list/deserialize/lengths_0_1.txt new file mode 100644 index 00000000..ad0ae2c8 --- /dev/null +++ b/test/rust/test_files/string_list/deserialize/lengths_0_1.txt @@ -0,0 +1,12 @@ +RootRef { + x: Ok( + [ + Ok( + "", + ), + Ok( + "x", + ), + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/deserialize/lengths_0_2.bin b/test/rust/test_files/string_list/deserialize/lengths_0_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..0fc431e1734d995457ec3b44465688d6369d6b76 GIT binary patch literal 45 ocmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*5QEqil|TXn0IGZi9{>OV literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/deserialize/lengths_0_2.txt b/test/rust/test_files/string_list/deserialize/lengths_0_2.txt new file mode 100644 index 00000000..51e96d51 --- /dev/null +++ b/test/rust/test_files/string_list/deserialize/lengths_0_2.txt @@ -0,0 +1,12 @@ +RootRef { + x: Ok( + [ + Ok( + "", + ), + Ok( + "xy", + ), + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/deserialize/lengths_0_3.bin b/test/rust/test_files/string_list/deserialize/lengths_0_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..5e2f75af536821fe6ad264913af7ed10aab20ee4 GIT binary patch literal 45 qcmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*5HkaDMP(I`1Ofo9-vycg literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/deserialize/lengths_0_3.txt b/test/rust/test_files/string_list/deserialize/lengths_0_3.txt new file mode 100644 index 00000000..b7a3d00f --- /dev/null +++ b/test/rust/test_files/string_list/deserialize/lengths_0_3.txt @@ -0,0 +1,12 @@ +RootRef { + x: Ok( + [ + Ok( + "", + ), + Ok( + "xyz", + ), + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/deserialize/lengths_0_4.bin b/test/rust/test_files/string_list/deserialize/lengths_0_4.bin new file mode 100644 index 0000000000000000000000000000000000000000..3be475382487683b5a0b00ad40373f283146f101 GIT binary patch literal 49 pcmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%i2yMR6jxMMl>?a&007Bi1{MGS literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/deserialize/lengths_0_4.txt b/test/rust/test_files/string_list/deserialize/lengths_0_4.txt new file mode 100644 index 00000000..0397067b --- /dev/null +++ b/test/rust/test_files/string_list/deserialize/lengths_0_4.txt @@ -0,0 +1,12 @@ +RootRef { + x: Ok( + [ + Ok( + "", + ), + Ok( + "xyzw", + ), + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/deserialize/lengths_1_0.bin b/test/rust/test_files/string_list/deserialize/lengths_1_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..c2c8cded09f6ff18367c378be81983811bd40356 GIT binary patch literal 46 ocmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*NC*lTfpj7R0H;<2jsO4v literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/deserialize/lengths_1_0.txt b/test/rust/test_files/string_list/deserialize/lengths_1_0.txt new file mode 100644 index 00000000..c97b99ae --- /dev/null +++ b/test/rust/test_files/string_list/deserialize/lengths_1_0.txt @@ -0,0 +1,12 @@ +RootRef { + x: Ok( + [ + Ok( + "a", + ), + Ok( + "", + ), + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/deserialize/lengths_1_1.bin b/test/rust/test_files/string_list/deserialize/lengths_1_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..7565ee3bc461b097103b00a0131ca08040d7ab5c GIT binary patch literal 46 pcmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*5HkXC1(Z%?0068M1qT2C literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/deserialize/lengths_1_1.txt b/test/rust/test_files/string_list/deserialize/lengths_1_1.txt new file mode 100644 index 00000000..f254c22c --- /dev/null +++ b/test/rust/test_files/string_list/deserialize/lengths_1_1.txt @@ -0,0 +1,12 @@ +RootRef { + x: Ok( + [ + Ok( + "a", + ), + Ok( + "x", + ), + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/deserialize/lengths_1_2.bin b/test/rust/test_files/string_list/deserialize/lengths_1_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..c613c8fb4cb263e09add38f1b9e5c9c2966c128b GIT binary patch literal 46 scmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*5QEqil?)7wKsu2D0I*{PfdBvi literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/deserialize/lengths_1_2.txt b/test/rust/test_files/string_list/deserialize/lengths_1_2.txt new file mode 100644 index 00000000..bfc6b668 --- /dev/null +++ b/test/rust/test_files/string_list/deserialize/lengths_1_2.txt @@ -0,0 +1,12 @@ +RootRef { + x: Ok( + [ + Ok( + "a", + ), + Ok( + "xy", + ), + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/deserialize/lengths_1_3.bin b/test/rust/test_files/string_list/deserialize/lengths_1_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..86f1d5e7ef24f18d0217e414bda7a3c0d33e6552 GIT binary patch literal 46 tcmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*5HkaDMP(HOBalvH006W>1^fU2 literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/deserialize/lengths_1_3.txt b/test/rust/test_files/string_list/deserialize/lengths_1_3.txt new file mode 100644 index 00000000..710ab996 --- /dev/null +++ b/test/rust/test_files/string_list/deserialize/lengths_1_3.txt @@ -0,0 +1,12 @@ +RootRef { + x: Ok( + [ + Ok( + "a", + ), + Ok( + "xyz", + ), + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/deserialize/lengths_1_4.bin b/test/rust/test_files/string_list/deserialize/lengths_1_4.bin new file mode 100644 index 0000000000000000000000000000000000000000..450bcb8f44a817727ee1cbd8f4d427e47f86bb7c GIT binary patch literal 50 tcmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%i2yMR6jxMMl>?a!j6j^o007WH26zAf literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/deserialize/lengths_1_4.txt b/test/rust/test_files/string_list/deserialize/lengths_1_4.txt new file mode 100644 index 00000000..a839280a --- /dev/null +++ b/test/rust/test_files/string_list/deserialize/lengths_1_4.txt @@ -0,0 +1,12 @@ +RootRef { + x: Ok( + [ + Ok( + "a", + ), + Ok( + "xyzw", + ), + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/deserialize/lengths_2_0.bin b/test/rust/test_files/string_list/deserialize/lengths_2_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..21e04fdeaaca2c33dc1bdf4e0e2dea6dd7f29d49 GIT binary patch literal 47 ocmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*NC*l*Vu?u%0IaVB@c;k- literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/deserialize/lengths_2_0.txt b/test/rust/test_files/string_list/deserialize/lengths_2_0.txt new file mode 100644 index 00000000..7d5a5390 --- /dev/null +++ b/test/rust/test_files/string_list/deserialize/lengths_2_0.txt @@ -0,0 +1,12 @@ +RootRef { + x: Ok( + [ + Ok( + "ab", + ), + Ok( + "", + ), + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/deserialize/lengths_2_1.bin b/test/rust/test_files/string_list/deserialize/lengths_2_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..ec9250a1d8da41cdbcdc30c491fa66f89da7f206 GIT binary patch literal 47 rcmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*5HkXC1rUS85|bDJvE~J8 literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/deserialize/lengths_2_1.txt b/test/rust/test_files/string_list/deserialize/lengths_2_1.txt new file mode 100644 index 00000000..6ce35464 --- /dev/null +++ b/test/rust/test_files/string_list/deserialize/lengths_2_1.txt @@ -0,0 +1,12 @@ +RootRef { + x: Ok( + [ + Ok( + "ab", + ), + Ok( + "x", + ), + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/deserialize/lengths_2_2.bin b/test/rust/test_files/string_list/deserialize/lengths_2_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..70f6554788c550a1054b90aaebd27a19f0d87b12 GIT binary patch literal 47 qcmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*5QEqil@K~Hi2(q%uLa}) literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/deserialize/lengths_2_2.txt b/test/rust/test_files/string_list/deserialize/lengths_2_2.txt new file mode 100644 index 00000000..44b42ea8 --- /dev/null +++ b/test/rust/test_files/string_list/deserialize/lengths_2_2.txt @@ -0,0 +1,12 @@ +RootRef { + x: Ok( + [ + Ok( + "ab", + ), + Ok( + "xy", + ), + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/deserialize/lengths_2_3.bin b/test/rust/test_files/string_list/deserialize/lengths_2_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..182967f6f3c20542a6c213d69933f88d2eb9bdd8 GIT binary patch literal 47 scmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*5HkaDMP(IOEHQ}z0J{hVUjP6A literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/deserialize/lengths_2_3.txt b/test/rust/test_files/string_list/deserialize/lengths_2_3.txt new file mode 100644 index 00000000..ab6e454f --- /dev/null +++ b/test/rust/test_files/string_list/deserialize/lengths_2_3.txt @@ -0,0 +1,12 @@ +RootRef { + x: Ok( + [ + Ok( + "ab", + ), + Ok( + "xyz", + ), + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/deserialize/lengths_2_4.bin b/test/rust/test_files/string_list/deserialize/lengths_2_4.bin new file mode 100644 index 0000000000000000000000000000000000000000..32cc1855e293d4470a9cfb075ec7e6ff5fe8a3be GIT binary patch literal 51 scmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%i2yMR6jxMMl>?bz@x&ws0M~;C+W-In literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/deserialize/lengths_2_4.txt b/test/rust/test_files/string_list/deserialize/lengths_2_4.txt new file mode 100644 index 00000000..c843fb3a --- /dev/null +++ b/test/rust/test_files/string_list/deserialize/lengths_2_4.txt @@ -0,0 +1,12 @@ +RootRef { + x: Ok( + [ + Ok( + "ab", + ), + Ok( + "xyzw", + ), + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/deserialize/lengths_3_0.bin b/test/rust/test_files/string_list/deserialize/lengths_3_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..0a4cbed4c2445e8b11039c45d15637e66425087e GIT binary patch literal 48 qcmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*NC*m;fplV0G6MjzZUt2U literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/deserialize/lengths_3_0.txt b/test/rust/test_files/string_list/deserialize/lengths_3_0.txt new file mode 100644 index 00000000..e5aedf33 --- /dev/null +++ b/test/rust/test_files/string_list/deserialize/lengths_3_0.txt @@ -0,0 +1,12 @@ +RootRef { + x: Ok( + [ + Ok( + "abc", + ), + Ok( + "", + ), + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/deserialize/lengths_3_1.bin b/test/rust/test_files/string_list/deserialize/lengths_3_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..7e0d77ef950198c3b869a4823fcc5c16da8fada2 GIT binary patch literal 48 tcmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*5HkXC1rRd>abi+30|2-l1>w*5QEqil?)8bKsqrgnE?R3VFpM5 literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/deserialize/lengths_3_2.txt b/test/rust/test_files/string_list/deserialize/lengths_3_2.txt new file mode 100644 index 00000000..5a2514b7 --- /dev/null +++ b/test/rust/test_files/string_list/deserialize/lengths_3_2.txt @@ -0,0 +1,12 @@ +RootRef { + x: Ok( + [ + Ok( + "abc", + ), + Ok( + "xy", + ), + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/deserialize/lengths_3_3.bin b/test/rust/test_files/string_list/deserialize/lengths_3_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..edc053656b20cd223761bba7b86023b970af6a19 GIT binary patch literal 48 tcmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*5HkaDMP(J3PE1N>006=@2EzaV literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/deserialize/lengths_3_3.txt b/test/rust/test_files/string_list/deserialize/lengths_3_3.txt new file mode 100644 index 00000000..300afaf5 --- /dev/null +++ b/test/rust/test_files/string_list/deserialize/lengths_3_3.txt @@ -0,0 +1,12 @@ +RootRef { + x: Ok( + [ + Ok( + "abc", + ), + Ok( + "xyz", + ), + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/deserialize/lengths_3_4.bin b/test/rust/test_files/string_list/deserialize/lengths_3_4.bin new file mode 100644 index 0000000000000000000000000000000000000000..37e5f7ea676db69b9d2e07fc9270ebe1808e10ef GIT binary patch literal 52 vcmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%i2yMR6jxMMl>?a!%s`x&l*|AC-z*0| literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/deserialize/lengths_3_4.txt b/test/rust/test_files/string_list/deserialize/lengths_3_4.txt new file mode 100644 index 00000000..761a2e5f --- /dev/null +++ b/test/rust/test_files/string_list/deserialize/lengths_3_4.txt @@ -0,0 +1,12 @@ +RootRef { + x: Ok( + [ + Ok( + "abc", + ), + Ok( + "xyzw", + ), + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/deserialize/lengths_4_0.bin b/test/rust/test_files/string_list/deserialize/lengths_4_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..21675dde74f88ba8fb0da04f03e47ef30b58afd4 GIT binary patch literal 49 qcmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*NC*l*?8Kzx6b1melm)r~ literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/deserialize/lengths_4_0.txt b/test/rust/test_files/string_list/deserialize/lengths_4_0.txt new file mode 100644 index 00000000..d39d4d0e --- /dev/null +++ b/test/rust/test_files/string_list/deserialize/lengths_4_0.txt @@ -0,0 +1,12 @@ +RootRef { + x: Ok( + [ + Ok( + "abcd", + ), + Ok( + "", + ), + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/deserialize/lengths_4_1.bin b/test/rust/test_files/string_list/deserialize/lengths_4_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..435b70e6cac441c6602bd6d45f2be698eec961f8 GIT binary patch literal 49 scmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*5HkXC1(cnbl$^o<0KUBjGXMYp literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/deserialize/lengths_4_1.txt b/test/rust/test_files/string_list/deserialize/lengths_4_1.txt new file mode 100644 index 00000000..a1555311 --- /dev/null +++ b/test/rust/test_files/string_list/deserialize/lengths_4_1.txt @@ -0,0 +1,12 @@ +RootRef { + x: Ok( + [ + Ok( + "abcd", + ), + Ok( + "x", + ), + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/deserialize/lengths_4_2.bin b/test/rust/test_files/string_list/deserialize/lengths_4_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..e1d2d4826cefc2c67b901228556d1fc626180ae8 GIT binary patch literal 49 scmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*5QEqil@NAfQgR9d0K|F*tpET3 literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/deserialize/lengths_4_2.txt b/test/rust/test_files/string_list/deserialize/lengths_4_2.txt new file mode 100644 index 00000000..8aacbde4 --- /dev/null +++ b/test/rust/test_files/string_list/deserialize/lengths_4_2.txt @@ -0,0 +1,12 @@ +RootRef { + x: Ok( + [ + Ok( + "abcd", + ), + Ok( + "xy", + ), + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/deserialize/lengths_4_3.bin b/test/rust/test_files/string_list/deserialize/lengths_4_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..2bafb886274283deb8c4296df09c70182d13e45a GIT binary patch literal 49 ucmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*5HkaDMP(J3otTuI!T?bzeqvH`3IhP=JO`uz literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/deserialize/lengths_4_4.txt b/test/rust/test_files/string_list/deserialize/lengths_4_4.txt new file mode 100644 index 00000000..4bf9f5fe --- /dev/null +++ b/test/rust/test_files/string_list/deserialize/lengths_4_4.txt @@ -0,0 +1,12 @@ +RootRef { + x: Ok( + [ + Ok( + "abcd", + ), + Ok( + "xyzw", + ), + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/serialize/lengths_0_0.bin b/test/rust/test_files/string_list/serialize/lengths_0_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..db08ff428ba74b18208d9d2bb1b1b33af15615f0 GIT binary patch literal 45 kcmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*NC+7K0HR_9EC2ui literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/serialize/lengths_0_0.dbg.txt b/test/rust/test_files/string_list/serialize/lengths_0_0.dbg.txt new file mode 100644 index 00000000..8b0ae994 --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_0_0.dbg.txt @@ -0,0 +1,8 @@ +Root { + x: Some( + [ + "", + "", + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/serialize/lengths_0_0.dump.txt b/test/rust/test_files/string_list/serialize/lengths_0_0.dump.txt new file mode 100644 index 00000000..e97cf04a --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_0_0.dump.txt @@ -0,0 +1,4 @@ +obj @ 0x04..0x0c +vtable @ 0x0e..0x14 +field[0] @ 0x08..0x0c: + 0c 00 00 00 diff --git a/test/rust/test_files/string_list/serialize/lengths_0_0.json b/test/rust/test_files/string_list/serialize/lengths_0_0.json new file mode 100644 index 00000000..817f0966 --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_0_0.json @@ -0,0 +1 @@ +{ "x": ["", ""] } diff --git a/test/rust/test_files/string_list/serialize/lengths_0_1.bin b/test/rust/test_files/string_list/serialize/lengths_0_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..e7fea1eabb1a7fa6dda752b69d08f8fdc45fc681 GIT binary patch literal 45 ocmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*5HkXC1rUP)0H&t|r2qf` literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/serialize/lengths_0_1.dbg.txt b/test/rust/test_files/string_list/serialize/lengths_0_1.dbg.txt new file mode 100644 index 00000000..4fd6c9d5 --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_0_1.dbg.txt @@ -0,0 +1,8 @@ +Root { + x: Some( + [ + "", + "x", + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/serialize/lengths_0_1.dump.txt b/test/rust/test_files/string_list/serialize/lengths_0_1.dump.txt new file mode 100644 index 00000000..e97cf04a --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_0_1.dump.txt @@ -0,0 +1,4 @@ +obj @ 0x04..0x0c +vtable @ 0x0e..0x14 +field[0] @ 0x08..0x0c: + 0c 00 00 00 diff --git a/test/rust/test_files/string_list/serialize/lengths_0_1.json b/test/rust/test_files/string_list/serialize/lengths_0_1.json new file mode 100644 index 00000000..370a6559 --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_0_1.json @@ -0,0 +1 @@ +{ "x": ["", "x"] } diff --git a/test/rust/test_files/string_list/serialize/lengths_0_2.bin b/test/rust/test_files/string_list/serialize/lengths_0_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..0fc431e1734d995457ec3b44465688d6369d6b76 GIT binary patch literal 45 ocmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*5QEqil|TXn0IGZi9{>OV literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/serialize/lengths_0_2.dbg.txt b/test/rust/test_files/string_list/serialize/lengths_0_2.dbg.txt new file mode 100644 index 00000000..ce09eef2 --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_0_2.dbg.txt @@ -0,0 +1,8 @@ +Root { + x: Some( + [ + "", + "xy", + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/serialize/lengths_0_2.dump.txt b/test/rust/test_files/string_list/serialize/lengths_0_2.dump.txt new file mode 100644 index 00000000..e97cf04a --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_0_2.dump.txt @@ -0,0 +1,4 @@ +obj @ 0x04..0x0c +vtable @ 0x0e..0x14 +field[0] @ 0x08..0x0c: + 0c 00 00 00 diff --git a/test/rust/test_files/string_list/serialize/lengths_0_2.json b/test/rust/test_files/string_list/serialize/lengths_0_2.json new file mode 100644 index 00000000..5999fc4c --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_0_2.json @@ -0,0 +1 @@ +{ "x": ["", "xy"] } diff --git a/test/rust/test_files/string_list/serialize/lengths_0_3.bin b/test/rust/test_files/string_list/serialize/lengths_0_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..5e2f75af536821fe6ad264913af7ed10aab20ee4 GIT binary patch literal 45 qcmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*5HkaDMP(I`1Ofo9-vycg literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/serialize/lengths_0_3.dbg.txt b/test/rust/test_files/string_list/serialize/lengths_0_3.dbg.txt new file mode 100644 index 00000000..51a9b381 --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_0_3.dbg.txt @@ -0,0 +1,8 @@ +Root { + x: Some( + [ + "", + "xyz", + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/serialize/lengths_0_3.dump.txt b/test/rust/test_files/string_list/serialize/lengths_0_3.dump.txt new file mode 100644 index 00000000..e97cf04a --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_0_3.dump.txt @@ -0,0 +1,4 @@ +obj @ 0x04..0x0c +vtable @ 0x0e..0x14 +field[0] @ 0x08..0x0c: + 0c 00 00 00 diff --git a/test/rust/test_files/string_list/serialize/lengths_0_3.json b/test/rust/test_files/string_list/serialize/lengths_0_3.json new file mode 100644 index 00000000..f640fa92 --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_0_3.json @@ -0,0 +1 @@ +{ "x": ["", "xyz"] } diff --git a/test/rust/test_files/string_list/serialize/lengths_0_4.bin b/test/rust/test_files/string_list/serialize/lengths_0_4.bin new file mode 100644 index 0000000000000000000000000000000000000000..3be475382487683b5a0b00ad40373f283146f101 GIT binary patch literal 49 pcmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%i2yMR6jxMMl>?a&007Bi1{MGS literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/serialize/lengths_0_4.dbg.txt b/test/rust/test_files/string_list/serialize/lengths_0_4.dbg.txt new file mode 100644 index 00000000..0853242a --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_0_4.dbg.txt @@ -0,0 +1,8 @@ +Root { + x: Some( + [ + "", + "xyzw", + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/serialize/lengths_0_4.dump.txt b/test/rust/test_files/string_list/serialize/lengths_0_4.dump.txt new file mode 100644 index 00000000..e97cf04a --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_0_4.dump.txt @@ -0,0 +1,4 @@ +obj @ 0x04..0x0c +vtable @ 0x0e..0x14 +field[0] @ 0x08..0x0c: + 0c 00 00 00 diff --git a/test/rust/test_files/string_list/serialize/lengths_0_4.json b/test/rust/test_files/string_list/serialize/lengths_0_4.json new file mode 100644 index 00000000..7ad4d045 --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_0_4.json @@ -0,0 +1 @@ +{ "x": ["", "xyzw"] } diff --git a/test/rust/test_files/string_list/serialize/lengths_1_0.bin b/test/rust/test_files/string_list/serialize/lengths_1_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..c2c8cded09f6ff18367c378be81983811bd40356 GIT binary patch literal 46 ocmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*NC*lTfpj7R0H;<2jsO4v literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/serialize/lengths_1_0.dbg.txt b/test/rust/test_files/string_list/serialize/lengths_1_0.dbg.txt new file mode 100644 index 00000000..18ad1e16 --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_1_0.dbg.txt @@ -0,0 +1,8 @@ +Root { + x: Some( + [ + "a", + "", + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/serialize/lengths_1_0.dump.txt b/test/rust/test_files/string_list/serialize/lengths_1_0.dump.txt new file mode 100644 index 00000000..e97cf04a --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_1_0.dump.txt @@ -0,0 +1,4 @@ +obj @ 0x04..0x0c +vtable @ 0x0e..0x14 +field[0] @ 0x08..0x0c: + 0c 00 00 00 diff --git a/test/rust/test_files/string_list/serialize/lengths_1_0.json b/test/rust/test_files/string_list/serialize/lengths_1_0.json new file mode 100644 index 00000000..047f1692 --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_1_0.json @@ -0,0 +1 @@ +{ "x": ["a", ""] } diff --git a/test/rust/test_files/string_list/serialize/lengths_1_1.bin b/test/rust/test_files/string_list/serialize/lengths_1_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..7565ee3bc461b097103b00a0131ca08040d7ab5c GIT binary patch literal 46 pcmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*5HkXC1(Z%?0068M1qT2C literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/serialize/lengths_1_1.dbg.txt b/test/rust/test_files/string_list/serialize/lengths_1_1.dbg.txt new file mode 100644 index 00000000..449dd838 --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_1_1.dbg.txt @@ -0,0 +1,8 @@ +Root { + x: Some( + [ + "a", + "x", + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/serialize/lengths_1_1.dump.txt b/test/rust/test_files/string_list/serialize/lengths_1_1.dump.txt new file mode 100644 index 00000000..e97cf04a --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_1_1.dump.txt @@ -0,0 +1,4 @@ +obj @ 0x04..0x0c +vtable @ 0x0e..0x14 +field[0] @ 0x08..0x0c: + 0c 00 00 00 diff --git a/test/rust/test_files/string_list/serialize/lengths_1_1.json b/test/rust/test_files/string_list/serialize/lengths_1_1.json new file mode 100644 index 00000000..e89752da --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_1_1.json @@ -0,0 +1 @@ +{ "x": ["a", "x"] } diff --git a/test/rust/test_files/string_list/serialize/lengths_1_2.bin b/test/rust/test_files/string_list/serialize/lengths_1_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..c613c8fb4cb263e09add38f1b9e5c9c2966c128b GIT binary patch literal 46 scmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*5QEqil?)7wKsu2D0I*{PfdBvi literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/serialize/lengths_1_2.dbg.txt b/test/rust/test_files/string_list/serialize/lengths_1_2.dbg.txt new file mode 100644 index 00000000..4329a4b7 --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_1_2.dbg.txt @@ -0,0 +1,8 @@ +Root { + x: Some( + [ + "a", + "xy", + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/serialize/lengths_1_2.dump.txt b/test/rust/test_files/string_list/serialize/lengths_1_2.dump.txt new file mode 100644 index 00000000..e97cf04a --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_1_2.dump.txt @@ -0,0 +1,4 @@ +obj @ 0x04..0x0c +vtable @ 0x0e..0x14 +field[0] @ 0x08..0x0c: + 0c 00 00 00 diff --git a/test/rust/test_files/string_list/serialize/lengths_1_2.json b/test/rust/test_files/string_list/serialize/lengths_1_2.json new file mode 100644 index 00000000..0cb60091 --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_1_2.json @@ -0,0 +1 @@ +{ "x": ["a", "xy"] } diff --git a/test/rust/test_files/string_list/serialize/lengths_1_3.bin b/test/rust/test_files/string_list/serialize/lengths_1_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..86f1d5e7ef24f18d0217e414bda7a3c0d33e6552 GIT binary patch literal 46 tcmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*5HkaDMP(HOBalvH006W>1^fU2 literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/serialize/lengths_1_3.dbg.txt b/test/rust/test_files/string_list/serialize/lengths_1_3.dbg.txt new file mode 100644 index 00000000..cab42b23 --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_1_3.dbg.txt @@ -0,0 +1,8 @@ +Root { + x: Some( + [ + "a", + "xyz", + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/serialize/lengths_1_3.dump.txt b/test/rust/test_files/string_list/serialize/lengths_1_3.dump.txt new file mode 100644 index 00000000..e97cf04a --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_1_3.dump.txt @@ -0,0 +1,4 @@ +obj @ 0x04..0x0c +vtable @ 0x0e..0x14 +field[0] @ 0x08..0x0c: + 0c 00 00 00 diff --git a/test/rust/test_files/string_list/serialize/lengths_1_3.json b/test/rust/test_files/string_list/serialize/lengths_1_3.json new file mode 100644 index 00000000..c547eec6 --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_1_3.json @@ -0,0 +1 @@ +{ "x": ["a", "xyz"] } diff --git a/test/rust/test_files/string_list/serialize/lengths_1_4.bin b/test/rust/test_files/string_list/serialize/lengths_1_4.bin new file mode 100644 index 0000000000000000000000000000000000000000..450bcb8f44a817727ee1cbd8f4d427e47f86bb7c GIT binary patch literal 50 tcmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%i2yMR6jxMMl>?a!j6j^o007WH26zAf literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/serialize/lengths_1_4.dbg.txt b/test/rust/test_files/string_list/serialize/lengths_1_4.dbg.txt new file mode 100644 index 00000000..cd40df6c --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_1_4.dbg.txt @@ -0,0 +1,8 @@ +Root { + x: Some( + [ + "a", + "xyzw", + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/serialize/lengths_1_4.dump.txt b/test/rust/test_files/string_list/serialize/lengths_1_4.dump.txt new file mode 100644 index 00000000..e97cf04a --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_1_4.dump.txt @@ -0,0 +1,4 @@ +obj @ 0x04..0x0c +vtable @ 0x0e..0x14 +field[0] @ 0x08..0x0c: + 0c 00 00 00 diff --git a/test/rust/test_files/string_list/serialize/lengths_1_4.json b/test/rust/test_files/string_list/serialize/lengths_1_4.json new file mode 100644 index 00000000..8c6b6170 --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_1_4.json @@ -0,0 +1 @@ +{ "x": ["a", "xyzw"] } diff --git a/test/rust/test_files/string_list/serialize/lengths_2_0.bin b/test/rust/test_files/string_list/serialize/lengths_2_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..21e04fdeaaca2c33dc1bdf4e0e2dea6dd7f29d49 GIT binary patch literal 47 ocmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*NC*l*Vu?u%0IaVB@c;k- literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/serialize/lengths_2_0.dbg.txt b/test/rust/test_files/string_list/serialize/lengths_2_0.dbg.txt new file mode 100644 index 00000000..701d38ac --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_2_0.dbg.txt @@ -0,0 +1,8 @@ +Root { + x: Some( + [ + "ab", + "", + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/serialize/lengths_2_0.dump.txt b/test/rust/test_files/string_list/serialize/lengths_2_0.dump.txt new file mode 100644 index 00000000..e97cf04a --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_2_0.dump.txt @@ -0,0 +1,4 @@ +obj @ 0x04..0x0c +vtable @ 0x0e..0x14 +field[0] @ 0x08..0x0c: + 0c 00 00 00 diff --git a/test/rust/test_files/string_list/serialize/lengths_2_0.json b/test/rust/test_files/string_list/serialize/lengths_2_0.json new file mode 100644 index 00000000..0822c61f --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_2_0.json @@ -0,0 +1 @@ +{ "x": ["ab", ""] } diff --git a/test/rust/test_files/string_list/serialize/lengths_2_1.bin b/test/rust/test_files/string_list/serialize/lengths_2_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..ec9250a1d8da41cdbcdc30c491fa66f89da7f206 GIT binary patch literal 47 rcmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*5HkXC1rUS85|bDJvE~J8 literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/serialize/lengths_2_1.dbg.txt b/test/rust/test_files/string_list/serialize/lengths_2_1.dbg.txt new file mode 100644 index 00000000..81de29c6 --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_2_1.dbg.txt @@ -0,0 +1,8 @@ +Root { + x: Some( + [ + "ab", + "x", + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/serialize/lengths_2_1.dump.txt b/test/rust/test_files/string_list/serialize/lengths_2_1.dump.txt new file mode 100644 index 00000000..e97cf04a --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_2_1.dump.txt @@ -0,0 +1,4 @@ +obj @ 0x04..0x0c +vtable @ 0x0e..0x14 +field[0] @ 0x08..0x0c: + 0c 00 00 00 diff --git a/test/rust/test_files/string_list/serialize/lengths_2_1.json b/test/rust/test_files/string_list/serialize/lengths_2_1.json new file mode 100644 index 00000000..688c206a --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_2_1.json @@ -0,0 +1 @@ +{ "x": ["ab", "x"] } diff --git a/test/rust/test_files/string_list/serialize/lengths_2_2.bin b/test/rust/test_files/string_list/serialize/lengths_2_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..70f6554788c550a1054b90aaebd27a19f0d87b12 GIT binary patch literal 47 qcmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*5QEqil@K~Hi2(q%uLa}) literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/serialize/lengths_2_2.dbg.txt b/test/rust/test_files/string_list/serialize/lengths_2_2.dbg.txt new file mode 100644 index 00000000..4393dec5 --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_2_2.dbg.txt @@ -0,0 +1,8 @@ +Root { + x: Some( + [ + "ab", + "xy", + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/serialize/lengths_2_2.dump.txt b/test/rust/test_files/string_list/serialize/lengths_2_2.dump.txt new file mode 100644 index 00000000..e97cf04a --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_2_2.dump.txt @@ -0,0 +1,4 @@ +obj @ 0x04..0x0c +vtable @ 0x0e..0x14 +field[0] @ 0x08..0x0c: + 0c 00 00 00 diff --git a/test/rust/test_files/string_list/serialize/lengths_2_2.json b/test/rust/test_files/string_list/serialize/lengths_2_2.json new file mode 100644 index 00000000..f0d1bfbc --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_2_2.json @@ -0,0 +1 @@ +{ "x": ["ab", "xy"] } diff --git a/test/rust/test_files/string_list/serialize/lengths_2_3.bin b/test/rust/test_files/string_list/serialize/lengths_2_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..182967f6f3c20542a6c213d69933f88d2eb9bdd8 GIT binary patch literal 47 scmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*5HkaDMP(IOEHQ}z0J{hVUjP6A literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/serialize/lengths_2_3.dbg.txt b/test/rust/test_files/string_list/serialize/lengths_2_3.dbg.txt new file mode 100644 index 00000000..6bf57f1c --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_2_3.dbg.txt @@ -0,0 +1,8 @@ +Root { + x: Some( + [ + "ab", + "xyz", + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/serialize/lengths_2_3.dump.txt b/test/rust/test_files/string_list/serialize/lengths_2_3.dump.txt new file mode 100644 index 00000000..e97cf04a --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_2_3.dump.txt @@ -0,0 +1,4 @@ +obj @ 0x04..0x0c +vtable @ 0x0e..0x14 +field[0] @ 0x08..0x0c: + 0c 00 00 00 diff --git a/test/rust/test_files/string_list/serialize/lengths_2_3.json b/test/rust/test_files/string_list/serialize/lengths_2_3.json new file mode 100644 index 00000000..60fcb236 --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_2_3.json @@ -0,0 +1 @@ +{ "x": ["ab", "xyz"] } diff --git a/test/rust/test_files/string_list/serialize/lengths_2_4.bin b/test/rust/test_files/string_list/serialize/lengths_2_4.bin new file mode 100644 index 0000000000000000000000000000000000000000..32cc1855e293d4470a9cfb075ec7e6ff5fe8a3be GIT binary patch literal 51 scmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%i2yMR6jxMMl>?bz@x&ws0M~;C+W-In literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/serialize/lengths_2_4.dbg.txt b/test/rust/test_files/string_list/serialize/lengths_2_4.dbg.txt new file mode 100644 index 00000000..40046f9a --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_2_4.dbg.txt @@ -0,0 +1,8 @@ +Root { + x: Some( + [ + "ab", + "xyzw", + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/serialize/lengths_2_4.dump.txt b/test/rust/test_files/string_list/serialize/lengths_2_4.dump.txt new file mode 100644 index 00000000..e97cf04a --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_2_4.dump.txt @@ -0,0 +1,4 @@ +obj @ 0x04..0x0c +vtable @ 0x0e..0x14 +field[0] @ 0x08..0x0c: + 0c 00 00 00 diff --git a/test/rust/test_files/string_list/serialize/lengths_2_4.json b/test/rust/test_files/string_list/serialize/lengths_2_4.json new file mode 100644 index 00000000..f9d007df --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_2_4.json @@ -0,0 +1 @@ +{ "x": ["ab", "xyzw"] } diff --git a/test/rust/test_files/string_list/serialize/lengths_3_0.bin b/test/rust/test_files/string_list/serialize/lengths_3_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..0a4cbed4c2445e8b11039c45d15637e66425087e GIT binary patch literal 48 qcmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*NC*m;fplV0G6MjzZUt2U literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/serialize/lengths_3_0.dbg.txt b/test/rust/test_files/string_list/serialize/lengths_3_0.dbg.txt new file mode 100644 index 00000000..5f261d8b --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_3_0.dbg.txt @@ -0,0 +1,8 @@ +Root { + x: Some( + [ + "abc", + "", + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/serialize/lengths_3_0.dump.txt b/test/rust/test_files/string_list/serialize/lengths_3_0.dump.txt new file mode 100644 index 00000000..e97cf04a --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_3_0.dump.txt @@ -0,0 +1,4 @@ +obj @ 0x04..0x0c +vtable @ 0x0e..0x14 +field[0] @ 0x08..0x0c: + 0c 00 00 00 diff --git a/test/rust/test_files/string_list/serialize/lengths_3_0.json b/test/rust/test_files/string_list/serialize/lengths_3_0.json new file mode 100644 index 00000000..976509e1 --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_3_0.json @@ -0,0 +1 @@ +{ "x": ["abc", ""] } diff --git a/test/rust/test_files/string_list/serialize/lengths_3_1.bin b/test/rust/test_files/string_list/serialize/lengths_3_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..7e0d77ef950198c3b869a4823fcc5c16da8fada2 GIT binary patch literal 48 tcmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*5HkXC1rRd>abi+30|2-l1>w*5QEqil?)8bKsqrgnE?R3VFpM5 literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/serialize/lengths_3_2.dbg.txt b/test/rust/test_files/string_list/serialize/lengths_3_2.dbg.txt new file mode 100644 index 00000000..7ee8bac5 --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_3_2.dbg.txt @@ -0,0 +1,8 @@ +Root { + x: Some( + [ + "abc", + "xy", + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/serialize/lengths_3_2.dump.txt b/test/rust/test_files/string_list/serialize/lengths_3_2.dump.txt new file mode 100644 index 00000000..e97cf04a --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_3_2.dump.txt @@ -0,0 +1,4 @@ +obj @ 0x04..0x0c +vtable @ 0x0e..0x14 +field[0] @ 0x08..0x0c: + 0c 00 00 00 diff --git a/test/rust/test_files/string_list/serialize/lengths_3_2.json b/test/rust/test_files/string_list/serialize/lengths_3_2.json new file mode 100644 index 00000000..351d6c87 --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_3_2.json @@ -0,0 +1 @@ +{ "x": ["abc", "xy"] } diff --git a/test/rust/test_files/string_list/serialize/lengths_3_3.bin b/test/rust/test_files/string_list/serialize/lengths_3_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..edc053656b20cd223761bba7b86023b970af6a19 GIT binary patch literal 48 tcmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*5HkaDMP(J3PE1N>006=@2EzaV literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/serialize/lengths_3_3.dbg.txt b/test/rust/test_files/string_list/serialize/lengths_3_3.dbg.txt new file mode 100644 index 00000000..13bbe3e6 --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_3_3.dbg.txt @@ -0,0 +1,8 @@ +Root { + x: Some( + [ + "abc", + "xyz", + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/serialize/lengths_3_3.dump.txt b/test/rust/test_files/string_list/serialize/lengths_3_3.dump.txt new file mode 100644 index 00000000..e97cf04a --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_3_3.dump.txt @@ -0,0 +1,4 @@ +obj @ 0x04..0x0c +vtable @ 0x0e..0x14 +field[0] @ 0x08..0x0c: + 0c 00 00 00 diff --git a/test/rust/test_files/string_list/serialize/lengths_3_3.json b/test/rust/test_files/string_list/serialize/lengths_3_3.json new file mode 100644 index 00000000..22d64ae4 --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_3_3.json @@ -0,0 +1 @@ +{ "x": ["abc", "xyz"] } diff --git a/test/rust/test_files/string_list/serialize/lengths_3_4.bin b/test/rust/test_files/string_list/serialize/lengths_3_4.bin new file mode 100644 index 0000000000000000000000000000000000000000..37e5f7ea676db69b9d2e07fc9270ebe1808e10ef GIT binary patch literal 52 vcmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%i2yMR6jxMMl>?a!%s`x&l*|AC-z*0| literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/serialize/lengths_3_4.dbg.txt b/test/rust/test_files/string_list/serialize/lengths_3_4.dbg.txt new file mode 100644 index 00000000..bb9f11f8 --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_3_4.dbg.txt @@ -0,0 +1,8 @@ +Root { + x: Some( + [ + "abc", + "xyzw", + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/serialize/lengths_3_4.dump.txt b/test/rust/test_files/string_list/serialize/lengths_3_4.dump.txt new file mode 100644 index 00000000..e97cf04a --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_3_4.dump.txt @@ -0,0 +1,4 @@ +obj @ 0x04..0x0c +vtable @ 0x0e..0x14 +field[0] @ 0x08..0x0c: + 0c 00 00 00 diff --git a/test/rust/test_files/string_list/serialize/lengths_3_4.json b/test/rust/test_files/string_list/serialize/lengths_3_4.json new file mode 100644 index 00000000..5be4077c --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_3_4.json @@ -0,0 +1 @@ +{ "x": ["abc", "xyzw"] } diff --git a/test/rust/test_files/string_list/serialize/lengths_4_0.bin b/test/rust/test_files/string_list/serialize/lengths_4_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..21675dde74f88ba8fb0da04f03e47ef30b58afd4 GIT binary patch literal 49 qcmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*NC*l*?8Kzx6b1melm)r~ literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/serialize/lengths_4_0.dbg.txt b/test/rust/test_files/string_list/serialize/lengths_4_0.dbg.txt new file mode 100644 index 00000000..45ca56f4 --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_4_0.dbg.txt @@ -0,0 +1,8 @@ +Root { + x: Some( + [ + "abcd", + "", + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/serialize/lengths_4_0.dump.txt b/test/rust/test_files/string_list/serialize/lengths_4_0.dump.txt new file mode 100644 index 00000000..e97cf04a --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_4_0.dump.txt @@ -0,0 +1,4 @@ +obj @ 0x04..0x0c +vtable @ 0x0e..0x14 +field[0] @ 0x08..0x0c: + 0c 00 00 00 diff --git a/test/rust/test_files/string_list/serialize/lengths_4_0.json b/test/rust/test_files/string_list/serialize/lengths_4_0.json new file mode 100644 index 00000000..c41943a2 --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_4_0.json @@ -0,0 +1 @@ +{ "x": ["abcd", ""] } diff --git a/test/rust/test_files/string_list/serialize/lengths_4_1.bin b/test/rust/test_files/string_list/serialize/lengths_4_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..435b70e6cac441c6602bd6d45f2be698eec961f8 GIT binary patch literal 49 scmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*5HkXC1(cnbl$^o<0KUBjGXMYp literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/serialize/lengths_4_1.dbg.txt b/test/rust/test_files/string_list/serialize/lengths_4_1.dbg.txt new file mode 100644 index 00000000..b558d2af --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_4_1.dbg.txt @@ -0,0 +1,8 @@ +Root { + x: Some( + [ + "abcd", + "x", + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/serialize/lengths_4_1.dump.txt b/test/rust/test_files/string_list/serialize/lengths_4_1.dump.txt new file mode 100644 index 00000000..e97cf04a --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_4_1.dump.txt @@ -0,0 +1,4 @@ +obj @ 0x04..0x0c +vtable @ 0x0e..0x14 +field[0] @ 0x08..0x0c: + 0c 00 00 00 diff --git a/test/rust/test_files/string_list/serialize/lengths_4_1.json b/test/rust/test_files/string_list/serialize/lengths_4_1.json new file mode 100644 index 00000000..0d7038e6 --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_4_1.json @@ -0,0 +1 @@ +{ "x": ["abcd", "x"] } diff --git a/test/rust/test_files/string_list/serialize/lengths_4_2.bin b/test/rust/test_files/string_list/serialize/lengths_4_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..e1d2d4826cefc2c67b901228556d1fc626180ae8 GIT binary patch literal 49 scmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*5QEqil@NAfQgR9d0K|F*tpET3 literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/serialize/lengths_4_2.dbg.txt b/test/rust/test_files/string_list/serialize/lengths_4_2.dbg.txt new file mode 100644 index 00000000..8027ab20 --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_4_2.dbg.txt @@ -0,0 +1,8 @@ +Root { + x: Some( + [ + "abcd", + "xy", + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/serialize/lengths_4_2.dump.txt b/test/rust/test_files/string_list/serialize/lengths_4_2.dump.txt new file mode 100644 index 00000000..e97cf04a --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_4_2.dump.txt @@ -0,0 +1,4 @@ +obj @ 0x04..0x0c +vtable @ 0x0e..0x14 +field[0] @ 0x08..0x0c: + 0c 00 00 00 diff --git a/test/rust/test_files/string_list/serialize/lengths_4_2.json b/test/rust/test_files/string_list/serialize/lengths_4_2.json new file mode 100644 index 00000000..d2f97cc7 --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_4_2.json @@ -0,0 +1 @@ +{ "x": ["abcd", "xy"] } diff --git a/test/rust/test_files/string_list/serialize/lengths_4_3.bin b/test/rust/test_files/string_list/serialize/lengths_4_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..2bafb886274283deb8c4296df09c70182d13e45a GIT binary patch literal 49 ucmZQ!U|{(6|Nnm;AkDzQ#=ybA!oUP%2>>w*5HkaDMP(J3otTuI!T?bzeqvH`3IhP=JO`uz literal 0 HcmV?d00001 diff --git a/test/rust/test_files/string_list/serialize/lengths_4_4.dbg.txt b/test/rust/test_files/string_list/serialize/lengths_4_4.dbg.txt new file mode 100644 index 00000000..d9bbdb24 --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_4_4.dbg.txt @@ -0,0 +1,8 @@ +Root { + x: Some( + [ + "abcd", + "xyzw", + ], + ), +} \ No newline at end of file diff --git a/test/rust/test_files/string_list/serialize/lengths_4_4.dump.txt b/test/rust/test_files/string_list/serialize/lengths_4_4.dump.txt new file mode 100644 index 00000000..e97cf04a --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_4_4.dump.txt @@ -0,0 +1,4 @@ +obj @ 0x04..0x0c +vtable @ 0x0e..0x14 +field[0] @ 0x08..0x0c: + 0c 00 00 00 diff --git a/test/rust/test_files/string_list/serialize/lengths_4_4.json b/test/rust/test_files/string_list/serialize/lengths_4_4.json new file mode 100644 index 00000000..b0011455 --- /dev/null +++ b/test/rust/test_files/string_list/serialize/lengths_4_4.json @@ -0,0 +1 @@ +{ "x": ["abcd", "xyzw"] } diff --git a/test/rust/test_files/strings.fbs b/test/rust/test_files/strings.fbs new file mode 100644 index 00000000..e0db4208 --- /dev/null +++ b/test/rust/test_files/strings.fbs @@ -0,0 +1,4 @@ +table Root { + a: string; + b: string; +} diff --git a/test/rust/test_files/strings/deserialize/invalid_0_0.bin b/test/rust/test_files/strings/deserialize/invalid_0_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..83b65f1c7b92638047dd570da4c8360b0b271f3a GIT binary patch literal 32 bcmZQ!U|{(2|NnmxAk72B96*u(1r-1Q literal 0 HcmV?d00001 diff --git a/test/rust/test_files/strings/deserialize/invalid_1_1.txt b/test/rust/test_files/strings/deserialize/invalid_1_1.txt new file mode 100644 index 00000000..22074c5f --- /dev/null +++ b/test/rust/test_files/strings/deserialize/invalid_1_1.txt @@ -0,0 +1,15 @@ +RootRef { + a: Err( + Error { + source_location: ErrorLocation { + type_: "Root", + method: "a", + byte_offset: 4, + }, + error_kind: MissingNullTerminator, + }, + ), + b: Ok( + "x", + ), +} \ No newline at end of file diff --git a/test/rust/test_files/strings/deserialize/invalid_1_2.bin b/test/rust/test_files/strings/deserialize/invalid_1_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..ab04f6a7ae709bcffff2db4f87eb160da217f51b GIT binary patch literal 37 kcmZQ!U|{(2|NnmpAk72B96*uJDj{pDw literal 0 HcmV?d00001 diff --git a/test/rust/test_files/strings/deserialize/invalid_1_2.txt b/test/rust/test_files/strings/deserialize/invalid_1_2.txt new file mode 100644 index 00000000..3cbbd9b4 --- /dev/null +++ b/test/rust/test_files/strings/deserialize/invalid_1_2.txt @@ -0,0 +1,15 @@ +RootRef { + a: Err( + Error { + source_location: ErrorLocation { + type_: "Root", + method: "a", + byte_offset: 4, + }, + error_kind: MissingNullTerminator, + }, + ), + b: Ok( + "xy", + ), +} \ No newline at end of file diff --git a/test/rust/test_files/strings/deserialize/invalid_1_3.bin b/test/rust/test_files/strings/deserialize/invalid_1_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..838524862933fc5448cf224758cbc6966959cc44 GIT binary patch literal 37 kcmZQ!U|{(2|NnmpAk72B96*u_K*25kTU literal 0 HcmV?d00001 diff --git a/test/rust/test_files/strings/deserialize/invalid_2_3.txt b/test/rust/test_files/strings/deserialize/invalid_2_3.txt new file mode 100644 index 00000000..39b0fd60 --- /dev/null +++ b/test/rust/test_files/strings/deserialize/invalid_2_3.txt @@ -0,0 +1,15 @@ +RootRef { + a: Err( + Error { + source_location: ErrorLocation { + type_: "Root", + method: "a", + byte_offset: 4, + }, + error_kind: MissingNullTerminator, + }, + ), + b: Ok( + "xyz", + ), +} \ No newline at end of file diff --git a/test/rust/test_files/strings/deserialize/invalid_2_4.bin b/test/rust/test_files/strings/deserialize/invalid_2_4.bin new file mode 100644 index 0000000000000000000000000000000000000000..8287c617999ef6561ec370b304c118490d4be7be GIT binary patch literal 38 lcmZQ!U|{(2|NnmpAk72B96*u_U&2IT+% literal 0 HcmV?d00001 diff --git a/test/rust/test_files/strings/deserialize/invalid_2_4.txt b/test/rust/test_files/strings/deserialize/invalid_2_4.txt new file mode 100644 index 00000000..1bf952d3 --- /dev/null +++ b/test/rust/test_files/strings/deserialize/invalid_2_4.txt @@ -0,0 +1,22 @@ +RootRef { + a: Err( + Error { + source_location: ErrorLocation { + type_: "Root", + method: "a", + byte_offset: 4, + }, + error_kind: MissingNullTerminator, + }, + ), + b: Err( + Error { + source_location: ErrorLocation { + type_: "Root", + method: "b", + byte_offset: 4, + }, + error_kind: MissingNullTerminator, + }, + ), +} \ No newline at end of file diff --git a/test/rust/test_files/strings/deserialize/invalid_3_0.bin b/test/rust/test_files/strings/deserialize/invalid_3_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..b88b1013831961b3f96193b9ae35e8307adad8e8 GIT binary patch literal 35 hcmZQ!U|{(2|NnmxAk72B96*u0GDM2@&Et; literal 0 HcmV?d00001 diff --git a/test/rust/test_files/strings/deserialize/lengths_2_2.txt b/test/rust/test_files/strings/deserialize/lengths_2_2.txt new file mode 100644 index 00000000..9c5b27cd --- /dev/null +++ b/test/rust/test_files/strings/deserialize/lengths_2_2.txt @@ -0,0 +1,8 @@ +RootRef { + a: Ok( + "ab", + ), + b: Ok( + "xy", + ), +} \ No newline at end of file diff --git a/test/rust/test_files/strings/deserialize/lengths_2_3.bin b/test/rust/test_files/strings/deserialize/lengths_2_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..a8844a673af8dbd204332eab421fcbf83ef9d4eb GIT binary patch literal 39 mcmZQ!U|{(2|NnmpAk72B96*uPx# literal 0 HcmV?d00001 diff --git a/test/rust/test_files/strings/deserialize/lengths_2_4.txt b/test/rust/test_files/strings/deserialize/lengths_2_4.txt new file mode 100644 index 00000000..c017aeb6 --- /dev/null +++ b/test/rust/test_files/strings/deserialize/lengths_2_4.txt @@ -0,0 +1,8 @@ +RootRef { + a: Ok( + "ab", + ), + b: Ok( + "xyzw", + ), +} \ No newline at end of file diff --git a/test/rust/test_files/strings/deserialize/lengths_3_0.bin b/test/rust/test_files/strings/deserialize/lengths_3_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..6b4acad70c2943af3f52da7d3efca77dc06b6094 GIT binary patch literal 40 icmZQ!U|{(2|NnmpAk72B96*uwo1>67t literal 0 HcmV?d00001 diff --git a/test/rust/test_files/strings/deserialize/lengths_3_1.txt b/test/rust/test_files/strings/deserialize/lengths_3_1.txt new file mode 100644 index 00000000..837343a8 --- /dev/null +++ b/test/rust/test_files/strings/deserialize/lengths_3_1.txt @@ -0,0 +1,8 @@ +RootRef { + a: Ok( + "abc", + ), + b: Ok( + "x", + ), +} \ No newline at end of file diff --git a/test/rust/test_files/strings/deserialize/lengths_3_2.bin b/test/rust/test_files/strings/deserialize/lengths_3_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..99bebc2f3598c8984c449a5809b1a29961cc8309 GIT binary patch literal 40 ncmZQ!U|{(2|NnmpAk72B96*ui literal 0 HcmV?d00001 diff --git a/test/rust/test_files/strings/deserialize/lengths_4_1.txt b/test/rust/test_files/strings/deserialize/lengths_4_1.txt new file mode 100644 index 00000000..60a0ae40 --- /dev/null +++ b/test/rust/test_files/strings/deserialize/lengths_4_1.txt @@ -0,0 +1,8 @@ +RootRef { + a: Ok( + "abcd", + ), + b: Ok( + "x", + ), +} \ No newline at end of file diff --git a/test/rust/test_files/strings/deserialize/lengths_4_2.bin b/test/rust/test_files/strings/deserialize/lengths_4_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..7b4a0717e4a7f1f63884cf14c5c43c9e79f7b604 GIT binary patch literal 41 ocmZQ!U|{(2|NnmpAk72B96*u0GDM2@&Et; literal 0 HcmV?d00001 diff --git a/test/rust/test_files/strings/serialize/lengths_2_2.dbg.txt b/test/rust/test_files/strings/serialize/lengths_2_2.dbg.txt new file mode 100644 index 00000000..2b005de1 --- /dev/null +++ b/test/rust/test_files/strings/serialize/lengths_2_2.dbg.txt @@ -0,0 +1,8 @@ +Root { + a: Some( + "ab", + ), + b: Some( + "xy", + ), +} \ No newline at end of file diff --git a/test/rust/test_files/strings/serialize/lengths_2_2.dump.txt b/test/rust/test_files/strings/serialize/lengths_2_2.dump.txt new file mode 100644 index 00000000..25a6f09d --- /dev/null +++ b/test/rust/test_files/strings/serialize/lengths_2_2.dump.txt @@ -0,0 +1,6 @@ +obj @ 0x04..0x10 +vtable @ 0x10..0x18 +field[0] @ 0x08..0x0c: + 18 00 00 00 +field[1] @ 0x0c..0x10: + 0c 00 00 00 diff --git a/test/rust/test_files/strings/serialize/lengths_2_2.json b/test/rust/test_files/strings/serialize/lengths_2_2.json new file mode 100644 index 00000000..6f1e697f --- /dev/null +++ b/test/rust/test_files/strings/serialize/lengths_2_2.json @@ -0,0 +1,4 @@ +{ + "a": "ab", + "b": "xy" +} diff --git a/test/rust/test_files/strings/serialize/lengths_2_3.bin b/test/rust/test_files/strings/serialize/lengths_2_3.bin new file mode 100644 index 0000000000000000000000000000000000000000..a8844a673af8dbd204332eab421fcbf83ef9d4eb GIT binary patch literal 39 mcmZQ!U|{(2|NnmpAk72B96*uPx# literal 0 HcmV?d00001 diff --git a/test/rust/test_files/strings/serialize/lengths_2_4.dbg.txt b/test/rust/test_files/strings/serialize/lengths_2_4.dbg.txt new file mode 100644 index 00000000..b43e8252 --- /dev/null +++ b/test/rust/test_files/strings/serialize/lengths_2_4.dbg.txt @@ -0,0 +1,8 @@ +Root { + a: Some( + "ab", + ), + b: Some( + "xyzw", + ), +} \ No newline at end of file diff --git a/test/rust/test_files/strings/serialize/lengths_2_4.dump.txt b/test/rust/test_files/strings/serialize/lengths_2_4.dump.txt new file mode 100644 index 00000000..8823b3b7 --- /dev/null +++ b/test/rust/test_files/strings/serialize/lengths_2_4.dump.txt @@ -0,0 +1,6 @@ +obj @ 0x04..0x10 +vtable @ 0x10..0x18 +field[0] @ 0x08..0x0c: + 1c 00 00 00 +field[1] @ 0x0c..0x10: + 0c 00 00 00 diff --git a/test/rust/test_files/strings/serialize/lengths_2_4.json b/test/rust/test_files/strings/serialize/lengths_2_4.json new file mode 100644 index 00000000..401acbee --- /dev/null +++ b/test/rust/test_files/strings/serialize/lengths_2_4.json @@ -0,0 +1,4 @@ +{ + "a": "ab", + "b": "xyzw" +} diff --git a/test/rust/test_files/strings/serialize/lengths_3_0.bin b/test/rust/test_files/strings/serialize/lengths_3_0.bin new file mode 100644 index 0000000000000000000000000000000000000000..6b4acad70c2943af3f52da7d3efca77dc06b6094 GIT binary patch literal 40 icmZQ!U|{(2|NnmpAk72B96*uwo1>67t literal 0 HcmV?d00001 diff --git a/test/rust/test_files/strings/serialize/lengths_3_1.dbg.txt b/test/rust/test_files/strings/serialize/lengths_3_1.dbg.txt new file mode 100644 index 00000000..c5af185a --- /dev/null +++ b/test/rust/test_files/strings/serialize/lengths_3_1.dbg.txt @@ -0,0 +1,8 @@ +Root { + a: Some( + "abc", + ), + b: Some( + "x", + ), +} \ No newline at end of file diff --git a/test/rust/test_files/strings/serialize/lengths_3_1.dump.txt b/test/rust/test_files/strings/serialize/lengths_3_1.dump.txt new file mode 100644 index 00000000..25a6f09d --- /dev/null +++ b/test/rust/test_files/strings/serialize/lengths_3_1.dump.txt @@ -0,0 +1,6 @@ +obj @ 0x04..0x10 +vtable @ 0x10..0x18 +field[0] @ 0x08..0x0c: + 18 00 00 00 +field[1] @ 0x0c..0x10: + 0c 00 00 00 diff --git a/test/rust/test_files/strings/serialize/lengths_3_1.json b/test/rust/test_files/strings/serialize/lengths_3_1.json new file mode 100644 index 00000000..1a2f940f --- /dev/null +++ b/test/rust/test_files/strings/serialize/lengths_3_1.json @@ -0,0 +1,4 @@ +{ + "a": "abc", + "b": "x" +} diff --git a/test/rust/test_files/strings/serialize/lengths_3_2.bin b/test/rust/test_files/strings/serialize/lengths_3_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..99bebc2f3598c8984c449a5809b1a29961cc8309 GIT binary patch literal 40 ncmZQ!U|{(2|NnmpAk72B96*ui literal 0 HcmV?d00001 diff --git a/test/rust/test_files/strings/serialize/lengths_4_1.dbg.txt b/test/rust/test_files/strings/serialize/lengths_4_1.dbg.txt new file mode 100644 index 00000000..f8ac28fd --- /dev/null +++ b/test/rust/test_files/strings/serialize/lengths_4_1.dbg.txt @@ -0,0 +1,8 @@ +Root { + a: Some( + "abcd", + ), + b: Some( + "x", + ), +} \ No newline at end of file diff --git a/test/rust/test_files/strings/serialize/lengths_4_1.dump.txt b/test/rust/test_files/strings/serialize/lengths_4_1.dump.txt new file mode 100644 index 00000000..25a6f09d --- /dev/null +++ b/test/rust/test_files/strings/serialize/lengths_4_1.dump.txt @@ -0,0 +1,6 @@ +obj @ 0x04..0x10 +vtable @ 0x10..0x18 +field[0] @ 0x08..0x0c: + 18 00 00 00 +field[1] @ 0x0c..0x10: + 0c 00 00 00 diff --git a/test/rust/test_files/strings/serialize/lengths_4_1.json b/test/rust/test_files/strings/serialize/lengths_4_1.json new file mode 100644 index 00000000..008f7ce3 --- /dev/null +++ b/test/rust/test_files/strings/serialize/lengths_4_1.json @@ -0,0 +1,4 @@ +{ + "a": "abcd", + "b": "x" +} diff --git a/test/rust/test_files/strings/serialize/lengths_4_2.bin b/test/rust/test_files/strings/serialize/lengths_4_2.bin new file mode 100644 index 0000000000000000000000000000000000000000..7b4a0717e4a7f1f63884cf14c5c43c9e79f7b604 GIT binary patch literal 41 ocmZQ!U|{(2|NnmpAk72B96*u Date: Tue, 4 Jan 2022 14:22:06 +0100 Subject: [PATCH 2/2] Add safety comments --- planus/src/lib.rs | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/planus/src/lib.rs b/planus/src/lib.rs index 5e7451de..9418de09 100644 --- a/planus/src/lib.rs +++ b/planus/src/lib.rs @@ -903,14 +903,16 @@ where for v in self.iter() { tmp.push(v.prepare(builder)); } + // SAFETY: We need to make sure we always write the 4+stride*len bytes in the closure unsafe { + // TODO: This will not be correctly aligned if P::ALIGNMENT_MASK is bigger than u32::ALIGNMENT_MASK builder.write_with( T::STRIDE .checked_mul(self.len()) .unwrap() .checked_add(4) .unwrap(), - P::ALIGNMENT_MASK.max(3), + P::ALIGNMENT_MASK.max(u32::ALIGNMENT_MASK), |buffer_position, bytes| { let bytes = bytes.as_mut_ptr(); @@ -922,7 +924,7 @@ where T::write_values(&tmp, bytes.add(4), buffer_position - 4); }, ) - }; + } builder.current_offset() } } @@ -1073,10 +1075,12 @@ impl WriteAsOptional> for str { impl WriteAsOffset for str { #[inline] fn prepare(&self, builder: &mut Builder) -> Offset { + let size_including_len_and_null = self.len().checked_add(5).unwrap(); + // SAFETY: We make sure to write the 4+len+1 bytes inside the closure. unsafe { builder.write_with( - self.len().checked_add(5).unwrap(), - 3, + size_including_len_and_null, + u32::ALIGNMENT_MASK, |buffer_position, bytes| { let bytes = bytes.as_mut_ptr(); @@ -1092,7 +1096,7 @@ impl WriteAsOffset for str { bytes.add(4 + self.len()).write(MaybeUninit::new(0)); }, ) - }; + } builder.current_offset() } }