Skip to main content

wasm_bindgen_shared/
tys.rs

1macro_rules! tys {
2    ($($a:ident)*) => (tys! { @ ($($a)*) 0 });
3    (@ () $v:expr) => {};
4    (@ ($a:ident $($b:ident)*) $v:expr) => {
5        pub const $a: u32 = $v;
6        tys!(@ ($($b)*) $v+1);
7    }
8}
9
10tys! {
11    I8
12    U8
13    I16
14    U16
15    I32
16    U32
17    I64
18    U64
19    I64_AS_F64
20    U64_AS_F64
21    I128
22    U128
23    F32
24    F64
25    BOOLEAN
26    FUNCTION
27    CLOSURE
28    CACHED_STRING
29    STRING
30    REF
31    REFMUT
32    LONGREF
33    SLICE
34    VECTOR
35    EXTERNREF
36    NAMED_EXTERNREF
37    ENUM
38    STRING_ENUM
39    DYNAMIC_UNION
40    RUST_STRUCT
41    CHAR
42    OPTIONAL
43    RESULT
44    UNIT
45    CLAMPED
46    NONNULL
47    RAW_POINTER
48    SEQ_MODE
49    NULLABLE
50}
51
52/// The word following a `SEQ_MODE` tag: what JS receives, ORed with flags.
53pub const SEQ_MODE_VIEW: u32 = 0;
54pub const SEQ_MODE_COPY: u32 = 1;
55pub const SEQ_MODE_ARRAY: u32 = 2;
56/// A `vec = ..` mode, for owned sequences, rather than `slice = ..`.
57pub const SEQ_MODE_VEC: u32 = 1 << 2;
58/// Written on the argument rather than inherited, so the CLI validates it.
59pub const SEQ_MODE_EXPLICIT: u32 = 1 << 3;