Struct bones_asset::SchemaRef
pub struct SchemaRef<'pointer> { /* private fields */ }
Expand description
An untyped reference that knows the [Schema
] of the pointee and that can be cast to a matching
type.
Implementations§
§impl<'pointer> SchemaRef<'pointer>
impl<'pointer> SchemaRef<'pointer>
pub unsafe fn cast_unchecked<T>(&self) -> &T
pub unsafe fn cast_unchecked<T>(&self) -> &T
Unsafely cast this pointer to a specifc Rust type.
Safety
All of the safety requirements of NonNull::as_ref()
must be met.
pub unsafe fn cast_into_unchecked<T>(self) -> &'pointer T
pub unsafe fn cast_into_unchecked<T>(self) -> &'pointer T
Unsafely cast this pointer to a specifc Rust type.
Safety
All of the safety requirements of NonNull::as_ref()
must be met.
pub fn cast<T>(&self) -> &'pointer Twhere
T: HasSchema,
pub fn cast<T>(&self) -> &'pointer Twhere T: HasSchema,
Cast this pointer to a reference to a type with a matching [Schema
].
Panics
Panics if the schema of the pointer does not match that of the type you are casting to.
pub fn try_cast<T>(&self) -> Result<&'pointer T, SchemaMismatchError>where
T: HasSchema,
pub fn try_cast<T>(&self) -> Result<&'pointer T, SchemaMismatchError>where T: HasSchema,
Cast this pointer to a reference to a type with a matching [Schema
].
Errors
Errors if the schema of the pointer does not match that of the type you are casting to.
pub fn new<T>(v: &'pointer T) -> SchemaRef<'pointer>where
T: HasSchema,
pub fn new<T>(v: &'pointer T) -> SchemaRef<'pointer>where T: HasSchema,
pub unsafe fn from_ptr_schema(
ptr: *const c_void,
schema: &'static Schema
) -> SchemaRef<'pointer>
pub unsafe fn from_ptr_schema( ptr: *const c_void, schema: &'static Schema ) -> SchemaRef<'pointer>
pub fn schema(&self) -> &'static Schema
pub fn schema(&self) -> &'static Schema
Get the [Schema
] for the pointer.
pub fn as_map(&self) -> Option<&'pointer SchemaMap>
pub fn as_map(&self) -> Option<&'pointer SchemaMap>
Borrow the schema ref as a SchemaMap
if it is one.
pub fn as_vec(&self) -> Option<&'pointer SchemaVec>
pub fn as_vec(&self) -> Option<&'pointer SchemaVec>
Borrow the schema ref as a SchemaVec
if it is one.
pub fn as_box(&self) -> Option<SchemaRef<'pointer>>
pub fn as_box(&self) -> Option<SchemaRef<'pointer>>
Borrow the schema ref as a SchemaBox
if it is one.
pub fn debug_format_value(&self, f: &mut Formatter<'_>) -> Result<(), Error>
pub fn debug_format_value(&self, f: &mut Formatter<'_>) -> Result<(), Error>
Debug format the value stored in the schema box.
This is used in the display and debug implementations.
pub fn access(self) -> SchemaRefAccess<'pointer>
pub fn access(self) -> SchemaRefAccess<'pointer>
Get a helper to access the inner data.
pub fn field<'a, I>(self, field_idx: I) -> Option<SchemaRef<'pointer>>where
I: Into<FieldIdx<'a>>,
pub fn field<'a, I>(self, field_idx: I) -> Option<SchemaRef<'pointer>>where I: Into<FieldIdx<'a>>,
Get the reference to a field.
pub fn field_path<'a, I>(self, path: I) -> Option<SchemaRef<'pointer>>where
I: IntoIterator<Item = FieldIdx<'a>>,
pub fn field_path<'a, I>(self, path: I) -> Option<SchemaRef<'pointer>>where I: IntoIterator<Item = FieldIdx<'a>>,
Get the field pointed to by the given path.
pub fn clone_into_box(&self) -> SchemaBox
pub fn clone_into_box(&self) -> SchemaBox
Clone this schema ref into a new box.