Function scale_value::serde::to_value
source · pub fn to_value<T: Serialize>(ty: T) -> Result<Value<()>, SerializerError>
Expand description
Attempt to convert some type into a crate::Value
via serde.
Examples
Convert a built-in array of values into a crate::Value
:
use scale_value::Value;
let arr = [1u8, 2u8, 3u8];
let val = scale_value::serde::to_value(arr).unwrap();
assert_eq!(val, Value::unnamed_composite([
Value::u128(1),
Value::u128(2),
Value::u128(3),
]));
Converting some custom type to a crate::Value
:
use scale_value::Value;
use serde::{ Serialize, Deserialize };
#[derive(Serialize, Deserialize, PartialEq, Debug)]
enum Foo {
A { is_valid: bool, name: String },
B(u8, bool)
}
let foo = Foo::A { is_valid: true, name: "James".into() };
let value = scale_value::serde::to_value(foo).unwrap();
assert_eq!(value, Value::named_variant("A", [
("is_valid", Value::bool(true)),
("name", Value::string("James")),
]));