Skip to main content

Action

Trait Action 

Source
pub trait Action: ActionDeriv + ActionCompute {
    // Provided methods
    fn canonical_bytes(&self) -> Vec<u8> 
       where Self: Sized { ... }
    fn from_bytes(
        version: u32,
        bytes: &[u8],
    ) -> Result<Box<Self>, DeserializeError>
       where Self: Sized { ... }
    fn approx_size(&self) -> usize
       where Self: Sized { ... }
}
Expand description

Action — kernel-facing trait. Composed automatically by the blanket below: any T: ActionDeriv + ActionCompute is Action. External code never implements this directly.

Default method bodies use postcard for the canonical-bytes round trip (R3v3-Δ2). approx_size defaults to the encoded length; override only if a cheaper estimate is required.

Provided Methods§

Source

fn canonical_bytes(&self) -> Vec<u8>
where Self: Sized,

Postcard-canonical byte encoding. See Component::canonical_bytes for the contract; identical shape applies here.

Source

fn from_bytes(version: u32, bytes: &[u8]) -> Result<Box<Self>, DeserializeError>
where Self: Sized,

Inverse of canonical_bytes. SchemaVersionMismatch on unequal version.

Source

fn approx_size(&self) -> usize
where Self: Sized,

Approximate byte size — defaults to encoded length.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§