interstice_abi/
interstice_type_def.rs1use crate::IntersticeType;
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, Deserialize, Serialize)]
5pub enum IntersticeTypeDef {
6 Struct {
7 name: String,
8 fields: Vec<FieldDef>,
9 },
10 Enum {
11 name: String,
12 variants: Vec<FieldDef>,
13 },
14}
15
16impl IntersticeTypeDef {
17 pub fn get_name(&self) -> &String {
18 match &self {
19 IntersticeTypeDef::Struct { name, .. } => name,
20 IntersticeTypeDef::Enum { name, .. } => name,
21 }
22 }
23}
24
25#[derive(Debug, Clone, Deserialize, Serialize)]
26pub struct FieldDef {
27 pub name: String,
28 pub field_type: IntersticeType,
29}