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§
impl<T, E> Codec<T> for E
Blanket implementation of Codec for all traits implementing
NargSerialize,
NargDeserialize,
Encoding, and Decoding