pub trait CustomType {
const CUSTOM_TYPE: &'static CustomType<'static>;
}Expand description
Custom type introspection.
This trait is similar to crate::introspect::Type but provides custom type definitions
that include the type name and are suitable for IDL generation. While
crate::introspect::Type returns inline type information, this trait returns named custom
type definitions.
§Examples
use zlink_core::introspect::CustomType;
use zlink_core::idl::{self, Field, CustomObject};
struct Point {
x: f64,
y: f64,
}
impl CustomType for Point {
const CUSTOM_TYPE: &'static idl::CustomType<'static> = &{
static FIELD_X: Field<'static> = Field::new("x", &zlink_core::idl::Type::Float, &[]);
static FIELD_Y: Field<'static> = Field::new("y", &zlink_core::idl::Type::Float, &[]);
static FIELDS: &[&Field<'static>] = &[&FIELD_X, &FIELD_Y];
idl::CustomType::Object(CustomObject::new("Point", FIELDS, &[]))
};
}Required Associated Constants§
Sourceconst CUSTOM_TYPE: &'static CustomType<'static>
const CUSTOM_TYPE: &'static CustomType<'static>
The custom type information including the type name.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".