Skip to main content

interstice_abi/interstice_value/
mod.rs

1mod convert;
2mod row;
3mod validate;
4
5pub use validate::validate_value;
6
7use serde::{Deserialize, Serialize};
8
9#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)]
10pub enum IntersticeValue {
11    Void,
12    U8(u8),
13    U32(u32),
14    U64(u64),
15    I32(i32),
16    I64(i64),
17    F32(f32),
18    F64(f64),
19    Bool(bool),
20    String(String),
21
22    Vec(Vec<IntersticeValue>),
23    Option(Option<Box<IntersticeValue>>),
24    Tuple(Vec<IntersticeValue>),
25
26    Struct {
27        name: String,
28        fields: Vec<Field>,
29    },
30
31    Enum {
32        name: String,
33        variant: String,
34        value: Box<IntersticeValue>,
35    },
36}
37
38#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)]
39pub struct Field {
40    pub name: String,
41    pub value: IntersticeValue,
42}