1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
// -------------------------------------------------
// ---------- Error while writing data -------------
// -------------------------------------------------
//
// Error: io
// ---- input data -----
pub const IO_U8_DATA: & = b"val";
pub const IO_STR_DATA: & = &;
// ---- io break -----
pub const IO_FIXED_DATA_SIZE: u64 = 0;
pub const IO_PREFIX_U8_DATA_SIZE: u64 = 3;
pub const IO_PREFIX_U16_DATA_SIZE: u64 = 4;
pub const IO_PREFIX_U32_DATA_SIZE: u64 = 5;
pub const IO_PREFIX_U32_7BIT_DATA_SIZE: u64 = 3;
pub const IO_END_DATA_SIZE: u64 = 0;
// -------------%<-------------%<-------------%<-------------%<-------------
// ----------------------------------------------------------
// ---------- Error while writing length prefix -------------
// ----------------------------------------------------------
//
// Error: io
//
// * `VecLayout::FixedLength` — length specified in format
// * `VecLayout::End` — length is dynamic
// ---- input data -----
pub const IO_U8_PREFIX: & = b"val";
pub const IO_STR_PREFIX: & = &;
// ---- io break -----
pub const IO_PREFIX_U8_PREFIX_SIZE: u64 = 0;
pub const IO_PREFIX_U16_PREFIX_SIZE: u64 = 0;
pub const IO_PREFIX_U32_PREFIX_SIZE: u64 = 0;
pub const IO_PREFIX_U32_7BIT_PREFIX_SIZE: u64 = 0;
// -------------%<-------------%<------|------->%------------->%-------------
// ------------------------------------------------------
// ---------- Error while writing less data -------------
// ------------------------------------------------------
//
// Error: io
//
// * `VecLayout::LengthPrefix` — no padding
// * `VecLayout::End` — no padding
// ---- input data -----
pub const IO_U8_LESS_DATA: & = b"va";
pub const IO_STR_LESS_DATA: & = &;
// ---- io break -----
pub const IO_FIXED_LESS_DATA_SIZE: u64 = 0;
// -------------%<-------------%<------|------->%------------->%-------------
// ---------------------------------------------------------
// ---------- Error while writing less padding -------------
// ---------------------------------------------------------
//
// Error: io
//
// * `VecLayout::LengthPrefix` — no padding
// * `VecLayout::End` — no padding
// ---- input data -----
pub const IO_U8_LESS_REST: & = b"va";
pub const IO_STR_LESS_REST: & = &;
// ---- io break -----
pub const IO_FIXED_LESS_REST_SIZE: u64 = 3;
// -------------%<-------------%<------|------->%------------->%-------------
// ----------------------------------------------------------
// ---------- Error while writing too much data -------------
// ----------------------------------------------------------
//
// Error: assertion
//
// data:str — same as u8, but additional preparation is required
//
// * `VecLayout::LengthPrefix` (not u8) — same condition as u8, but more data.
// * `VecLayout::End` — length is dynamic
// ---- input data -----
pub const ASSERTION_U8_TOO_BIG_DATA: & = include_bytes!;
// -------------%<-------------%<------|------->%------------->%-------------