Peek

Struct Peek 

Source
pub struct Peek<'mem, 'facet> { /* private fields */ }
Expand description

Lets you read from a value (implements read-only ValueVTable proxies)

Implementations§

Source§

impl<'mem, 'facet> Peek<'mem, 'facet>

Source

pub fn new<T: Facet<'facet> + ?Sized>(t: &'mem T) -> Self

Creates a new PeekValue instance for a value of type T.

Source

pub unsafe fn unchecked_new( data: impl Into<GenericPtr<'mem>>, shape: &'static Shape, ) -> Self

Creates a new PeekValue instance without checking the type.

§Safety

This function is unsafe because it doesn’t check if the provided data and shape are compatible. The caller must ensure that the data is valid for the given shape.

Source

pub fn vtable(&self) -> &'static ValueVTable

Returns the vtable

Source

pub fn id(&self) -> ValueId

Returns a unique identifier for this value, usable for cycle detection

Source

pub fn ptr_eq(&self, other: &Peek<'_, '_>) -> bool

Returns true if the two values are pointer-equal

Source

pub fn partial_eq(&self, other: &Peek<'_, '_>) -> Option<bool>

Returns true if this scalar is equal to the other scalar

§Returns

false if equality comparison is not supported for this scalar type

Source

pub fn partial_cmp(&self, other: &Peek<'_, '_>) -> Option<Option<Ordering>>

Compares this scalar with another and returns their ordering

§Returns

None if comparison is not supported for this scalar type

Source

pub fn hash<H: Hasher>(&self, hasher: &mut H) -> Result<(), ReflectError>

Hashes this scalar

§Returns

Err if hashing is not supported for this scalar type, Ok otherwise

Source

pub fn type_name(&self, f: &mut Formatter<'_>, opts: TypeNameOpts) -> Result

Returns the type name of this scalar

§Arguments
  • f - A mutable reference to a core::fmt::Formatter
  • opts - The TypeNameOpts to use for formatting
§Returns

The result of the type name formatting

Source

pub const fn shape(&self) -> &'static Shape

Returns the shape

Source

pub const fn data(&self) -> GenericPtr<'mem>

Returns the data

Source

pub fn scalar_type(&self) -> Option<ScalarType>

Get the scalar type if set.

Source

pub fn get<T: Facet<'facet> + ?Sized>(&self) -> Result<&T, ReflectError>

Read the value from memory into a Rust value.

§Panics

Panics if the shape doesn’t match the type T.

Source

pub fn as_str(&self) -> Option<&'mem str>

Try to get the value as a string if it’s a string type Returns None if the value is not a string or couldn’t be extracted

Source

pub fn as_bytes(&self) -> Option<&'mem [u8]>

Try to get the value as a byte slice if it’s a &u8 type Returns None if the value is not a byte slice or couldn’t be extracted

Source

pub fn into_struct(self) -> Result<PeekStruct<'mem, 'facet>, ReflectError>

Tries to identify this value as a struct

Source

pub fn into_enum(self) -> Result<PeekEnum<'mem, 'facet>, ReflectError>

Tries to identify this value as an enum

Source

pub fn into_map(self) -> Result<PeekMap<'mem, 'facet>, ReflectError>

Tries to identify this value as a map

Source

pub fn into_set(self) -> Result<PeekSet<'mem, 'facet>, ReflectError>

Tries to identify this value as a set

Source

pub fn into_list(self) -> Result<PeekList<'mem, 'facet>, ReflectError>

Tries to identify this value as a list

Source

pub fn into_list_like(self) -> Result<PeekListLike<'mem, 'facet>, ReflectError>

Tries to identify this value as a list, array or slice

Source

pub fn into_pointer(self) -> Result<PeekPointer<'mem, 'facet>, ReflectError>

Tries to identify this value as a pointer

Source

pub fn into_option(self) -> Result<PeekOption<'mem, 'facet>, ReflectError>

Tries to identify this value as an option

Source

pub fn into_tuple(self) -> Result<PeekTuple<'mem, 'facet>, ReflectError>

Tries to identify this value as a tuple

Source

pub fn innermost_peek(self) -> Self

Tries to return the innermost value — useful for serialization. For example, we serialize a NonZero<u8> the same as a u8. Similarly, we serialize a Utf8PathBuf the same as a `String.

Returns a Peek to the innermost value, unwrapping transparent wrappers recursively. For example, this will peel through newtype wrappers or smart pointers that have an inner.

Trait Implementations§

Source§

impl<'mem, 'facet> Clone for Peek<'mem, 'facet>

Source§

fn clone(&self) -> Peek<'mem, 'facet>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'mem, 'facet> Debug for Peek<'mem, 'facet>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'mem, 'facet> Display for Peek<'mem, 'facet>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'mem, 'facet> Hash for Peek<'mem, 'facet>

Source§

fn hash<H: Hasher>(&self, hasher: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl<'mem, 'facet> PartialEq for Peek<'mem, 'facet>

Source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<'mem, 'facet> PartialOrd for Peek<'mem, 'facet>

Source§

fn partial_cmp(&self, other: &Self) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl<'mem, 'facet> Copy for Peek<'mem, 'facet>

Auto Trait Implementations§

§

impl<'mem, 'facet> Freeze for Peek<'mem, 'facet>

§

impl<'mem, 'facet> RefUnwindSafe for Peek<'mem, 'facet>

§

impl<'mem, 'facet> !Send for Peek<'mem, 'facet>

§

impl<'mem, 'facet> !Sync for Peek<'mem, 'facet>

§

impl<'mem, 'facet> Unpin for Peek<'mem, 'facet>

§

impl<'mem, 'facet> UnwindSafe for Peek<'mem, 'facet>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.