pub trait SealableData: Serialize + DeserializeOwned { }Expand description
Marker trait for data that can be sealed in a DataEnvelope.
Note: If you implement this trait, you agree to the following: The struct serialization format is stable. Struct modifications must maintain backward compatibility with existing serialized data. Changes that break deserialization are considered breaking changes and require a new version and struct.
Ideally, when creating a new struct, create a test vector (a sealed DataEnvelope for a test value), and create a unit test ensuring that it permanently deserializes correctly.
To make breaking changes, introduce a new version. This should use the
generate_versioned_sealable! macro to auto-generate the versioning code. Please see the
examples directory.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.