pub trait DeserialCtxWithState<S>: Sizedwhere
S: HasStateApi,
{ // Required method fn deserial_ctx_with_state<R: Read>(
size_length: SizeLength,
ensure_ordered: bool,
state: &S,
source: &mut R
) -> ParseResult<Self>; }
Expand description

The DeserialCtxWithState trait provides a means of reading structures from byte-sources (Read) using contextual information for types that also need a reference to a HasStateApi type. The trait is a combination of the DeserialCtx and DeserialWithState traits, which each has additional documentation.

This trait is primarily used when deriving DeserialWithState for struct or enums where both contextual information and the state is present.

For example:

#[derive(DeserialWithState)]
#[concordium(state_parameter = "S")]
struct MyStruct<S: HasStateApi> {
    #[concordium(size_length = 2)]
    a: String, // Gets the contextual size_length information.
    b: StateBox<u8, S>, // Needs a HasStateApi type
}

Required Methods§

source

fn deserial_ctx_with_state<R: Read>(
size_length: SizeLength,
ensure_ordered: bool,
state: &S,
source: &mut R
) -> ParseResult<Self>

Attempt to read a structure from a given source, context, and state, failing if an error occurs during deserialization or reading.

Implementors§

source§

impl<D: DeserialCtx, S: HasStateApi> DeserialCtxWithState<S> for D

Blanket implementation of DeserialCtxWithState for any DeserialCtx types, which simply does not use the state argument.