Struct bones_lib::prelude::bones_schema::ptr::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_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.
Trait Implementations§
§impl<'a> From<SchemaRef<'a>> for PrimitiveRef<'a>
impl<'a> From<SchemaRef<'a>> for PrimitiveRef<'a>
§fn from(value: SchemaRef<'a>) -> PrimitiveRef<'a>
fn from(value: SchemaRef<'a>) -> PrimitiveRef<'a>
impl<'pointer> Copy for SchemaRef<'pointer>
Auto Trait Implementations§
impl<'pointer> Freeze for SchemaRef<'pointer>
impl<'pointer> !RefUnwindSafe for SchemaRef<'pointer>
impl<'pointer> !Send for SchemaRef<'pointer>
impl<'pointer> !Sync for SchemaRef<'pointer>
impl<'pointer> Unpin for SchemaRef<'pointer>
impl<'pointer> !UnwindSafe for SchemaRef<'pointer>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Copy,
impl<T> CloneToUninit for Twhere
T: Copy,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)