TraceDecodingVisitor

Struct TraceDecodingVisitor 

Source
pub struct TraceDecodingVisitor<Resolver> { /* private fields */ }
Expand description

A visitor that will attempt to decode some bytes into a crate::Value, returning a detailed error of where the decoding fails if it does.

Implementations§

Source§

impl<Resolver> TraceDecodingVisitor<Resolver>

Source

pub fn new() -> Self

Construct a new TraceDecodingVisitor.

Trait Implementations§

Source§

impl<Resolver> Default for TraceDecodingVisitor<Resolver>

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<Resolver> Visitor for TraceDecodingVisitor<Resolver>
where Resolver: TypeResolver,

Source§

type Value<'scale, 'resolver> = Value<<<TraceDecodingVisitor<Resolver> as Visitor>::TypeResolver as TypeResolver>::TypeId>

The type of the value to hand back from the decode_with_visitor() function.
Source§

type Error = TraceDecodingError<Value<<<TraceDecodingVisitor<Resolver> as Visitor>::TypeResolver as TypeResolver>::TypeId>>

The error type (which we must be able to convert a combination of Self and DecodeErrors into, to handle any internal errors that crop up trying to decode things).
Source§

type TypeResolver = Resolver

The thing we’ll use to resolve type IDs into concrete types.
Source§

fn visit_bool<'scale, 'resolver>( self, value: bool, type_id: TypeIdFor<Self>, ) -> Result<Self::Value<'scale, 'resolver>, Self::Error>

Called when a bool is seen in the input bytes.
Source§

fn visit_char<'scale, 'resolver>( self, value: char, type_id: TypeIdFor<Self>, ) -> Result<Self::Value<'scale, 'resolver>, Self::Error>

Called when a char is seen in the input bytes.
Source§

fn visit_u8<'scale, 'resolver>( self, value: u8, type_id: TypeIdFor<Self>, ) -> Result<Self::Value<'scale, 'resolver>, Self::Error>

Called when a u8 is seen in the input bytes.
Source§

fn visit_u16<'scale, 'resolver>( self, value: u16, type_id: TypeIdFor<Self>, ) -> Result<Self::Value<'scale, 'resolver>, Self::Error>

Called when a u16 is seen in the input bytes.
Source§

fn visit_u32<'scale, 'resolver>( self, value: u32, type_id: TypeIdFor<Self>, ) -> Result<Self::Value<'scale, 'resolver>, Self::Error>

Called when a u32 is seen in the input bytes.
Source§

fn visit_u64<'scale, 'resolver>( self, value: u64, type_id: TypeIdFor<Self>, ) -> Result<Self::Value<'scale, 'resolver>, Self::Error>

Called when a u64 is seen in the input bytes.
Source§

fn visit_u128<'scale, 'resolver>( self, value: u128, type_id: TypeIdFor<Self>, ) -> Result<Self::Value<'scale, 'resolver>, Self::Error>

Called when a u128 is seen in the input bytes.
Source§

fn visit_u256<'info>( self, value: &[u8; 32], type_id: TypeIdFor<Self>, ) -> Result<Self::Value<'_, 'info>, Self::Error>

Called when a u256 is seen in the input bytes.
Source§

fn visit_i8<'scale, 'resolver>( self, value: i8, type_id: TypeIdFor<Self>, ) -> Result<Self::Value<'scale, 'resolver>, Self::Error>

Called when an i8 is seen in the input bytes.
Source§

fn visit_i16<'scale, 'resolver>( self, value: i16, type_id: TypeIdFor<Self>, ) -> Result<Self::Value<'scale, 'resolver>, Self::Error>

Called when an i16 is seen in the input bytes.
Source§

fn visit_i32<'scale, 'resolver>( self, value: i32, type_id: TypeIdFor<Self>, ) -> Result<Self::Value<'scale, 'resolver>, Self::Error>

Called when an i32 is seen in the input bytes.
Source§

fn visit_i64<'scale, 'resolver>( self, value: i64, type_id: TypeIdFor<Self>, ) -> Result<Self::Value<'scale, 'resolver>, Self::Error>

Called when an i64 is seen in the input bytes.
Source§

fn visit_i128<'scale, 'resolver>( self, value: i128, type_id: TypeIdFor<Self>, ) -> Result<Self::Value<'scale, 'resolver>, Self::Error>

Called when an i128 is seen in the input bytes.
Source§

fn visit_i256<'info>( self, value: &[u8; 32], type_id: TypeIdFor<Self>, ) -> Result<Self::Value<'_, 'info>, Self::Error>

Called when an i256 is seen in the input bytes.
Source§

fn visit_bitsequence<'scale, 'info>( self, value: &mut BitSequence<'scale>, type_id: TypeIdFor<Self>, ) -> Result<Self::Value<'scale, 'info>, Self::Error>

Called when a bit sequence is seen in the input bytes.
Source§

fn visit_str<'scale, 'info>( self, value: &mut Str<'scale>, type_id: TypeIdFor<Self>, ) -> Result<Self::Value<'scale, 'info>, Self::Error>

Called when a string value is seen in the input bytes.
Source§

fn visit_sequence<'scale, 'resolver>( self, value: &mut Sequence<'scale, 'resolver, Self::TypeResolver>, type_id: TypeIdFor<Self>, ) -> Result<Self::Value<'scale, 'resolver>, Self::Error>

Called when a sequence of values is seen in the input bytes.
Source§

fn visit_array<'scale, 'resolver>( self, value: &mut Array<'scale, 'resolver, Self::TypeResolver>, type_id: TypeIdFor<Self>, ) -> Result<Self::Value<'scale, 'resolver>, Self::Error>

Called when an array is seen in the input bytes.
Source§

fn visit_tuple<'scale, 'resolver>( self, value: &mut Tuple<'scale, 'resolver, Self::TypeResolver>, type_id: TypeIdFor<Self>, ) -> Result<Self::Value<'scale, 'resolver>, Self::Error>

Called when a tuple of values is seen in the input bytes.
Source§

fn visit_variant<'scale, 'resolver>( self, value: &mut Variant<'scale, 'resolver, Self::TypeResolver>, type_id: TypeIdFor<Self>, ) -> Result<Self::Value<'scale, 'resolver>, Self::Error>

Called when a variant is seen in the input bytes.
Source§

fn visit_composite<'scale, 'resolver>( self, value: &mut Composite<'scale, 'resolver, Self::TypeResolver>, type_id: TypeIdFor<Self>, ) -> Result<Self::Value<'scale, 'resolver>, Self::Error>

Called when a composite value is seen in the input bytes.
Source§

fn unchecked_decode_as_type<'scale, 'resolver>( self, _input: &mut &'scale [u8], _type_id: <Self::TypeResolver as TypeResolver>::TypeId, _types: &'resolver Self::TypeResolver, ) -> DecodeAsTypeResult<Self, Result<Self::Value<'scale, 'resolver>, Self::Error>>

This method is called immediately upon running decode_with_visitor(). By default we ignore this call and return our visitor back (ie [DecodeAsTypeResult::Skipped(visitor)]). If you choose to do some decoding at this stage, return [DecodeAsTypeResult::Decoded(result)]. In either case, any bytes that you consume from the input (by altering what it points to) will be consumed for any subsequent visiting. Read more
Source§

fn visit_unexpected<'scale, 'resolver>( self, unexpected: Unexpected, ) -> Result<Self::Value<'scale, 'resolver>, Self::Error>

This is called when a visitor function that you’ve not provided an implementation is called. You are provided an enum value corresponding to the function call, and can decide what to return in this case. The default is to return an error to announce the unexpected value.

Auto Trait Implementations§

§

impl<Resolver> Freeze for TraceDecodingVisitor<Resolver>

§

impl<Resolver> RefUnwindSafe for TraceDecodingVisitor<Resolver>
where Resolver: RefUnwindSafe,

§

impl<Resolver> Send for TraceDecodingVisitor<Resolver>
where Resolver: Send,

§

impl<Resolver> Sync for TraceDecodingVisitor<Resolver>
where Resolver: Sync,

§

impl<Resolver> Unpin for TraceDecodingVisitor<Resolver>
where Resolver: Unpin,

§

impl<Resolver> UnwindSafe for TraceDecodingVisitor<Resolver>
where Resolver: 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, 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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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> JsonSchemaMaybe for T