ffi_struct_trait/
lib.rs

1use std::vec::IntoIter;
2
3/// Field information structure
4#[derive(Debug, Clone, Copy)]
5pub struct MemberInfo {
6	pub size: usize,
7	pub offset: usize,
8	pub type_name: &'static str,
9	pub type_id: std::any::TypeId,
10}
11
12/// FFIStruct trait
13pub trait FFIStruct: Default {
14	/// Get field info (excluding padding)
15	fn iter_members(&self) -> IntoIter<(&'static str, MemberInfo)>;
16
17	/// Get all field info (including padding)
18	fn iter_all_members(&self) -> IntoIter<(&'static str, MemberInfo)>;
19}