5 releases
| 0.1.7 | Oct 22, 2024 |
|---|---|
| 0.1.6 | Jun 3, 2024 |
| 0.1.5 | May 29, 2024 |
| 0.1.4 | Apr 1, 2024 |
| 0.1.3 | Mar 27, 2024 |
#1205 in Encoding
13,579 downloads per month
Used in 2 crates
17KB
346 lines
vbs
Provides the following:
- a trait
StaticVersionTypefor constraining to a version (major.minor) at compile-time.- sealed to a struct
StaticVersion<const MAJOR: u16, const MINOR: u16>. - for the purposes of version enforcement, patch versions are not treated as a type change.
- sealed to a struct
- a struct
Versionfor runtime operations against a version, without requiring dyn- used to [de]serialize a version in a strictly defined and immutable form, so that updates to the serialization format iteself can be a version controlled property.
- does not include patch level, prerelease identifiers, or build metadata; this is not intended to be a general purpose
semvercrate.
- a trait
BinarySerializer, an adaptor that can be implemented around any data format that adapts theserdedata model.- by default, serializes a version prefix before each top-level serialization, and verifies version compatibility when deserializing the serialized message.
- supports unversioned
[de]serialize_no_versionoperations, which, by default, should simply be the same as callingtype.serialize(serializer)for the embedded serializer.
- implementations against existing data formats
- currently, only bincode
Dependencies
~0.5–1.1MB
~23K SLoC