Enum bones_ecs::prelude::SchemaKind
pub enum SchemaKind {
Struct(StructSchemaInfo),
Vec(&'static Schema),
Enum(EnumSchemaInfo),
Map {
key: &'static Schema,
value: &'static Schema,
},
Box(&'static Schema),
Primitive(Primitive),
}
Expand description
A schema describes the data layout of a type, to enable dynamic access to the type’s data through a pointer.
Variants§
Struct(StructSchemaInfo)
The type represents a struct.
Vec(&'static Schema)
Type represents a SchemaVec
, where each item in the vec has the contained [Schema
].
The scripting solution must facilitate a way for scripts to access data in the Vec
if it
is to be readable/modifyable from scripts.
Enum(EnumSchemaInfo)
Type represents an enum, which in the C layout is called a tagged union.
Map
Fields
key: &'static Schema
The schema of the key type.
value: &'static Schema
The schema of the value type.
Type represents a SchemaMap
.
Box(&'static Schema)
The represents a SchemaBox
with given type inside.
Primitive(Primitive)
The type represents a primitive value.
Implementations§
§impl SchemaKind
impl SchemaKind
pub fn as_primitive(&self) -> Option<&Primitive>
pub fn as_primitive(&self) -> Option<&Primitive>
Get the primitive, if this is a primitive.
pub fn as_struct(&self) -> Option<&StructSchemaInfo>
pub fn as_struct(&self) -> Option<&StructSchemaInfo>
Get the struct, if this is a struct.
pub fn as_enum(&self) -> Option<&EnumSchemaInfo>
pub fn as_enum(&self) -> Option<&EnumSchemaInfo>
Get the enum, if this is a enum.
§impl SchemaKind
impl SchemaKind
pub fn compute_layout_info(&self) -> SchemaLayoutInfo<'_>
pub fn compute_layout_info(&self) -> SchemaLayoutInfo<'_>
Calculate the layout of the type represented by the schema.
Usually you don’t need to call this and should use the static, cached layout and field
offsets from [Schema::layout()
] and [Schema::field_offsets()
].
pub fn has_opaque(&self) -> bool
pub fn has_opaque(&self) -> bool
Recursively checks whether or not the schema contains any Opaque
primitives.
Trait Implementations§
§impl Clone for SchemaKind
impl Clone for SchemaKind
§fn clone(&self) -> SchemaKind
fn clone(&self) -> SchemaKind
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more