Struct CachedValue

Source
pub struct CachedValue<'a, C: Combinator>
where C::V: SecureSpecCombinator<SpecResult = <C::Owned as View>::V>,
{ /* private fields */ }

Implementations§

Source§

impl<'a, C: Combinator> CachedValue<'a, C>
where C::V: SecureSpecCombinator<SpecResult = <C::Owned as View>::V>,

Source

pub fn get(&self) -> &C::Result<'a>

Source

pub fn serialize(&self) -> &[u8]

Since we can’t expose any of self’s fields, we can’t check if the combinator expected by the user is the same as self.combinator

But the type of self.combinator is exposed to the user, and if there is a unique constructor for that type, then we can deduce that the serialized result would be the same.

Trait Implementations§

Source§

impl<'a, C: Combinator> Debug for CachedValue<'a, C>
where C::V: SecureSpecCombinator<SpecResult = <C::Owned as View>::V>, C::Result<'a>: Debug,

Source§

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

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

impl<'a, C: Combinator> PolyfillClone for CachedValue<'a, C>
where C::V: SecureSpecCombinator<SpecResult = <C::Owned as View>::V>, C::Result<'a>: PolyfillClone,

Source§

fn clone(&self) -> Self

Source§

impl<'a, C: Combinator> View for CachedValue<'a, C>
where C::V: SecureSpecCombinator<SpecResult = <C::Owned as View>::V>, for<'b> C::Result<'b>: View,

View of CachedValue discards the serialization

Source§

type V = <<C as Combinator>::Result<'a> as View>::V

Auto Trait Implementations§

§

impl<'a, C> Freeze for CachedValue<'a, C>
where <C as Combinator>::Result<'a>: Freeze,

§

impl<'a, C> RefUnwindSafe for CachedValue<'a, C>

§

impl<'a, C> Send for CachedValue<'a, C>
where <C as Combinator>::Result<'a>: Send, C: Send,

§

impl<'a, C> Sync for CachedValue<'a, C>
where <C as Combinator>::Result<'a>: Sync, C: Sync,

§

impl<'a, C> Unpin for CachedValue<'a, C>
where <C as Combinator>::Result<'a>: Unpin, C: Unpin,

§

impl<'a, C> UnwindSafe for CachedValue<'a, C>
where <C as Combinator>::Result<'a>: UnwindSafe, C: UnwindSafe,

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> From<T> for T
where T: View, <T as View>::V: SpecFrom<<T as View>::V>,

Source§

fn ex_from(t: T) -> T

Vest equivalent of std::convert::From::from.
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, U> Into<U> for T
where T: View, U: View + From<T>, <U as View>::V: SpecFrom<<T as View>::V>,

Source§

fn ex_into(self) -> U

Vest equivalent of std::convert::Into::into.
Source§

impl<T, U> SpecTryInto<U> for T
where U: SpecTryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
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.
Source§

impl<T, U> TryInto<U> for T
where T: View, U: View + TryFrom<T>, <U as View>::V: SpecTryFrom<<T as View>::V>,

Source§

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

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

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

Source§

impl<T> SpecFrom<T> for T

Source§

impl<T, U> SpecInto<U> for T
where U: SpecFrom<T>,