Struct Peek

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

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

Implementations§

Source§

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

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: &'shape Shape<'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) -> &'shape ValueVTable

Returns the vtable

Source

pub fn id(&self) -> ValueId<'shape>

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) -> &'shape Shape<'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>>(&self) -> Result<&T, ReflectError<'shape>>

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, 'shape>, ReflectError<'shape>>

Tries to identify this value as a struct

Source

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

Tries to identify this value as an enum

Source

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

Tries to identify this value as a map

Source

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

Tries to identify this value as a list

Source

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

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

Source

pub fn into_smart_pointer( self, ) -> Result<PeekSmartPointer<'mem, 'facet, 'shape>, ReflectError<'shape>>

Tries to identify this value as a smart pointer

Source

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

Tries to identify this value as an option

Source

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

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, 'shape> Clone for Peek<'mem, 'facet, 'shape>

Source§

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

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, 'shape> Debug for Peek<'mem, 'facet, 'shape>

Source§

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

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

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

Source§

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

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

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

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, 'shape> PartialEq for Peek<'mem, 'facet, 'shape>

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, 'shape> PartialOrd for Peek<'mem, 'facet, 'shape>

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, 'shape> Copy for Peek<'mem, 'facet, 'shape>

Auto Trait Implementations§

§

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

§

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

§

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

§

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

§

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

§

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

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<D> OwoColorize for D

Source§

fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>
where C: Color,

Set the foreground color generically Read more
Source§

fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>
where C: Color,

Set the background color generically. Read more
Source§

fn black(&self) -> FgColorDisplay<'_, Black, Self>

Change the foreground color to black
Source§

fn on_black(&self) -> BgColorDisplay<'_, Black, Self>

Change the background color to black
Source§

fn red(&self) -> FgColorDisplay<'_, Red, Self>

Change the foreground color to red
Source§

fn on_red(&self) -> BgColorDisplay<'_, Red, Self>

Change the background color to red
Source§

fn green(&self) -> FgColorDisplay<'_, Green, Self>

Change the foreground color to green
Source§

fn on_green(&self) -> BgColorDisplay<'_, Green, Self>

Change the background color to green
Source§

fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>

Change the foreground color to yellow
Source§

fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>

Change the background color to yellow
Source§

fn blue(&self) -> FgColorDisplay<'_, Blue, Self>

Change the foreground color to blue
Source§

fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>

Change the background color to blue
Source§

fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to magenta
Source§

fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to magenta
Source§

fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to purple
Source§

fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to purple
Source§

fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>

Change the foreground color to cyan
Source§

fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>

Change the background color to cyan
Source§

fn white(&self) -> FgColorDisplay<'_, White, Self>

Change the foreground color to white
Source§

fn on_white(&self) -> BgColorDisplay<'_, White, Self>

Change the background color to white
Source§

fn default_color(&self) -> FgColorDisplay<'_, Default, Self>

Change the foreground color to the terminal default
Source§

fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>

Change the background color to the terminal default
Source§

fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>

Change the foreground color to bright black
Source§

fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>

Change the background color to bright black
Source§

fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>

Change the foreground color to bright red
Source§

fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>

Change the background color to bright red
Source§

fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>

Change the foreground color to bright green
Source§

fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>

Change the background color to bright green
Source§

fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>

Change the foreground color to bright yellow
Source§

fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>

Change the background color to bright yellow
Source§

fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>

Change the foreground color to bright blue
Source§

fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>

Change the background color to bright blue
Source§

fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright magenta
Source§

fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright magenta
Source§

fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright purple
Source§

fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright purple
Source§

fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>

Change the foreground color to bright cyan
Source§

fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>

Change the background color to bright cyan
Source§

fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>

Change the foreground color to bright white
Source§

fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>

Change the background color to bright white
Source§

fn bold(&self) -> BoldDisplay<'_, Self>

Make the text bold
Source§

fn dimmed(&self) -> DimDisplay<'_, Self>

Make the text dim
Source§

fn italic(&self) -> ItalicDisplay<'_, Self>

Make the text italicized
Source§

fn underline(&self) -> UnderlineDisplay<'_, Self>

Make the text underlined
Make the text blink
Make the text blink (but fast!)
Source§

fn reversed(&self) -> ReversedDisplay<'_, Self>

Swap the foreground and background colors
Source§

fn hidden(&self) -> HiddenDisplay<'_, Self>

Hide the text
Source§

fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>

Cross out the text
Source§

fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the foreground color at runtime. Only use if you do not know which color will be used at compile-time. If the color is constant, use either OwoColorize::fg or a color-specific method, such as OwoColorize::green, Read more
Source§

fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the background color at runtime. Only use if you do not know what color to use at compile-time. If the color is constant, use either OwoColorize::bg or a color-specific method, such as OwoColorize::on_yellow, Read more
Source§

fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the foreground color to a specific RGB value.
Source§

fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the background color to a specific RGB value.
Source§

fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>

Sets the foreground color to an RGB value.
Source§

fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>

Sets the background color to an RGB value.
Source§

fn style(&self, style: Style) -> Styled<&Self>

Apply a runtime-determined style
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.