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§
Source§impl<'pointer> SchemaRef<'pointer>
impl<'pointer> SchemaRef<'pointer>
Sourcepub 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.
Sourcepub 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.
Sourcepub 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.
Sourcepub 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.
Sourcepub fn new<T>(v: &'pointer T) -> SchemaRef<'pointer>where
T: HasSchema,
pub fn new<T>(v: &'pointer T) -> SchemaRef<'pointer>where
T: HasSchema,
Sourcepub 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>
Sourcepub 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.
Sourcepub 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.
Sourcepub 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.
Sourcepub 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.
Sourcepub fn access(self) -> SchemaRefAccess<'pointer>
pub fn access(self) -> SchemaRefAccess<'pointer>
Get a helper to access the inner data.
Sourcepub fn field<'a, I>(self, field_idx: I) -> Option<SchemaRef<'pointer>>
pub fn field<'a, I>(self, field_idx: I) -> Option<SchemaRef<'pointer>>
Get the reference to a field.
Sourcepub 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.
Sourcepub fn clone_into_box(&self) -> SchemaBox
pub fn clone_into_box(&self) -> SchemaBox
Clone this schema ref into a new box.