Skip to main content

Codec

Trait Codec 

Source
pub trait Codec<T = [u8]>:
    NargDeserialize
    + NargSerialize
    + Encoding<T>
    + Decoding<T>
where T: ?Sized,
{ }
Expand description

Marker trait for types that have encoding and decoding maps.

A type is a Codec if it implements Encoding, Decoding, NargSerialize, and NargDeserialize

§Derive Macros

With the derive feature enabled:

use spongefish::Codec;

#[derive(Codec)]
struct MyStruct {
    field1: u32,
    field2: u32,
    #[spongefish(skip)]  // Skip this field (uses Default)
    cached: Option<String>,
}

Equivalent to deriving Encoding, Decoding, and NargDeserialize. Fields marked with #[spongefish(skip)] are initialized via Default.

Dyn Compatibility§

This trait is not dyn compatible.

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

Implementors§

Source§

impl<T, E> Codec<T> for E

Blanket implementation of Codec for all traits implementing NargSerialize, NargDeserialize, Encoding, and Decoding