[][src]Crate serde_scale_wrap

Overview

Wrapper for types implementing Serialize/Deserialize to implement Encode/Decode automatically.

⚠ The Error type exposed by this crate is meant to disappear if/when parity-scale-codec's Error implements Display unconditionally.

Example

extern crate alloc;

use alloc::string::String;
use parity_scale_codec::{Decode, Encode};
use serde::{Deserialize, Serialize};
use serde_scale_wrap::Wrap;

#[derive(Debug, Deserialize, PartialEq, Serialize)]
struct Foo {
    x: i32,
    s: String,
}

let original = Foo { x: 3, s: "foo".into() };
let serialized = Wrap(&original).encode();
let Wrap(deserialized) = Wrap::<Foo>::decode(&mut &*serialized).unwrap();
assert_eq!(original, deserialized);

Conformance

Option<bool> is serialized as a single byte according to the SCALE encoding, which differs from the result of Encode::encode -- Encode expects OptionBool to be used instead.

Features

no_std is supported by disabling default features.

  • std: Support for std. It is enabled by default. ⚠ It must be enabled if the serde/std feature is enabled by any crate in the dependency tree.

Contribute

All contributions shall be licensed under the zlib license.

Related projects

Structs

Error

Unstable error type meant to disappear if/when parity-scale-codec's Error implements Display unconditionally.

Wrap

Wrapper for types serializable with serde to support serialization with Encode/Decode