[−][src]Crate serde_scale
Overview
Serializer and deserializer for the SCALE encoding
based on serde
.
Example
use serde::{Deserialize, Serialize}; #[derive(Debug, Deserialize, PartialEq, Serialize)] struct Point { x: i8, y: i8, } let point = Point { x: 3, y: 4 }; let deserialized = serde_scale::from_slice(&serde_scale::to_vec(&point).unwrap()).unwrap(); assert_eq!(point, deserialized);
Conformance
Option<bool>
is serialized as a single byte according to the SCALE encoding.
Features
no_std
is supported by disabling default features.
std
: Support forstd
. It is enabled by default.alloc
: Support for thealloc
crate.
🔖 Features enabled in build dependencies and proc-macros are also enabled for normal
dependencies, which may cause serde
to have its std
feature on when it is not desired.
Nightly cargo prevents this from happening with
-Z features=host_dep
or the following in .cargo/config
:
[unstable]
features = ["host_dep"]
For example, this issue arises when depending on parity-scale-codec-derive
.
Test
Most tests live in the serde-scale-tests
crate (part of the workspace) in order to avoid
dependencies enabling serde
features.
cargo test --workspace
Contribute
All contributions shall be licensed under the zlib license.
Related projects
parity-scale-codec: Reference Rust implementation
Structs
Deserializer | Deserializer for the SCALE encoding |
EndOfInput | Error indicating that the end of the input was reached and not enough bytes were read |
OtherError | |
Serializer | Serializer for the SCALE encoding |
Enums
Bytes | Bytes borrowed from the deserializer or valid only for the duration of the call to |
Error | Serialization errors |
Traits
Read | Interface to read bytes |
Write | Interface to write bytes |
Functions
from_slice | Deserializes a value encoded with SCALE |
to_vec | Serializes a value using the SCALE encoding |