micromegas_transit/
reflect.rs1use serde::{Deserialize, Serialize};
2use std::sync::Arc;
3
4#[derive(Debug, Serialize, Deserialize, Clone)]
5pub struct Member {
6 pub name: Arc<String>,
7 pub type_name: String,
8 pub offset: usize,
9 pub size: usize,
10 pub is_reference: bool,
11}
12
13#[derive(Debug, Serialize, Deserialize, Clone)]
14pub struct UserDefinedType {
15 pub name: Arc<String>,
16 pub size: usize,
17 pub members: Vec<Member>,
18 pub is_reference: bool,
19 #[serde(skip)]
20 pub secondary_udts: Vec<UserDefinedType>, }
22
23pub trait Reflect {
24 fn reflect() -> UserDefinedType;
25}