Struct frame_support::traits::WrapperKeepOpaque
source · pub struct WrapperKeepOpaque<T> { /* private fields */ }Expand description
A wrapper for any type T which implement encode/decode in a way compatible with Vec<u8>.
This type is similar to WrapperOpaque, but it differs in the way it stores the type T.
While WrapperOpaque stores the decoded type, the WrapperKeepOpaque stores the type only
in its opaque format, aka as a Vec<u8>. To access the real type T Self::try_decode needs
to be used.
Implementations§
source§impl<T: Decode> WrapperKeepOpaque<T>
impl<T: Decode> WrapperKeepOpaque<T>
sourcepub fn try_decode(&self) -> Option<T>
pub fn try_decode(&self) -> Option<T>
Try to decode the wrapped type from the inner data.
Returns None if the decoding failed.
sourcepub fn encoded_len(&self) -> usize
pub fn encoded_len(&self) -> usize
Returns the length of the encoded T.
sourcepub fn from_encoded(data: Vec<u8>) -> Self
pub fn from_encoded(data: Vec<u8>) -> Self
Create from the given encoded data.
Trait Implementations§
source§impl<T: Clone> Clone for WrapperKeepOpaque<T>
impl<T: Clone> Clone for WrapperKeepOpaque<T>
source§fn clone(&self) -> WrapperKeepOpaque<T>
fn clone(&self) -> WrapperKeepOpaque<T>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moresource§impl<T: Debug> Debug for WrapperKeepOpaque<T>
impl<T: Debug> Debug for WrapperKeepOpaque<T>
source§impl<T: Decode> Decode for WrapperKeepOpaque<T>
impl<T: Decode> Decode for WrapperKeepOpaque<T>
source§impl<T: Default> Default for WrapperKeepOpaque<T>
impl<T: Default> Default for WrapperKeepOpaque<T>
source§fn default() -> WrapperKeepOpaque<T>
fn default() -> WrapperKeepOpaque<T>
Returns the “default value” for a type. Read more
source§impl<T: Encode> Encode for WrapperKeepOpaque<T>
impl<T: Encode> Encode for WrapperKeepOpaque<T>
source§fn size_hint(&self) -> usize
fn size_hint(&self) -> usize
If possible give a hint of expected size of the encoding. Read more
source§fn encode_to<O: Output + ?Sized>(&self, dest: &mut O)
fn encode_to<O: Output + ?Sized>(&self, dest: &mut O)
Convert self to a slice and append it to the destination.
source§fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R
fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R
Convert self to a slice and then invoke the given closure with it.
source§fn encoded_size(&self) -> usize
fn encoded_size(&self) -> usize
Calculates the encoded size. Read more
source§impl<T: MaxEncodedLen> MaxEncodedLen for WrapperKeepOpaque<T>
impl<T: MaxEncodedLen> MaxEncodedLen for WrapperKeepOpaque<T>
source§fn max_encoded_len() -> usize
fn max_encoded_len() -> usize
Upper bound, in bytes, of the maximum encoded size of this item.
source§impl<T: PartialEq> PartialEq<WrapperKeepOpaque<T>> for WrapperKeepOpaque<T>
impl<T: PartialEq> PartialEq<WrapperKeepOpaque<T>> for WrapperKeepOpaque<T>
source§fn eq(&self, other: &WrapperKeepOpaque<T>) -> bool
fn eq(&self, other: &WrapperKeepOpaque<T>) -> bool
This method tests for
self and other values to be equal, and is used
by ==.source§impl<T: TypeInfo + 'static> TypeInfo for WrapperKeepOpaque<T>
impl<T: TypeInfo + 'static> TypeInfo for WrapperKeepOpaque<T>
impl<T: Encode> EncodeLike<WrapperKeepOpaque<T>> for WrapperKeepOpaque<T>
impl<T: Encode> EncodeLike<WrapperKeepOpaque<T>> for WrapperOpaque<T>
impl<T: Encode> EncodeLike<WrapperOpaque<T>> for WrapperKeepOpaque<T>
impl<T: Eq> Eq for WrapperKeepOpaque<T>
impl<T> StructuralEq for WrapperKeepOpaque<T>
impl<T> StructuralPartialEq for WrapperKeepOpaque<T>
Auto Trait Implementations§
impl<T> RefUnwindSafe for WrapperKeepOpaque<T>where T: RefUnwindSafe,
impl<T> Send for WrapperKeepOpaque<T>where T: Send,
impl<T> Sync for WrapperKeepOpaque<T>where T: Sync,
impl<T> Unpin for WrapperKeepOpaque<T>where T: Unpin,
impl<T> UnwindSafe for WrapperKeepOpaque<T>where T: UnwindSafe,
Blanket Implementations§
source§impl<T> CheckedConversion for T
impl<T> CheckedConversion for T
source§impl<T> DecodeLimit for Twhere
T: Decode,
impl<T> DecodeLimit for Twhere T: Decode,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere T: Any,
§fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.source§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T, Outer> IsWrappedBy<Outer> for Twhere
Outer: AsRef<T> + AsMut<T> + From<T>,
T: From<Outer>,
impl<T, Outer> IsWrappedBy<Outer> for Twhere Outer: AsRef<T> + AsMut<T> + From<T>, T: From<Outer>,
source§impl<T> SaturatedConversion for T
impl<T> SaturatedConversion for T
source§fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
fn saturated_from<T>(t: T) -> Selfwhere Self: UniqueSaturatedFrom<T>,
source§fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
fn saturated_into<T>(self) -> Twhere Self: UniqueSaturatedInto<T>,
Consume self to return an equivalent value of
T. Read moresource§impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for Swhere T: UncheckedFrom<S>,
source§fn unchecked_into(self) -> T
fn unchecked_into(self) -> T
The counterpart to
unchecked_from.source§impl<T, S> UniqueSaturatedInto<T> for Swhere
T: Bounded,
S: TryInto<T>,
impl<T, S> UniqueSaturatedInto<T> for Swhere T: Bounded, S: TryInto<T>,
source§fn unique_saturated_into(self) -> T
fn unique_saturated_into(self) -> T
Consume self to return an equivalent value of
T.