serde-scale-wrap 0.1.0

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

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