serde-nu
Convert any value implementing serde::Serialize
into a
nu_protocol::Value
using serde_nu::to_value
. Compare the below manual
implemeentation and the one using serde_nu
.
```rust use nuprotocol::{Dictionary, Primitive, UntaggedValue, Value}; use nusource::Tag; use serde::Serialize;
struct MyStruct { index: usize, name: String, }
fn manual(s: MyStruct, tag: Tag) -> Value { let mut dict = Dictionary::default(); dict.insert( "index".into(), Value { value: UntaggedValue::Primitive(Primitive::Int(s.index as i64)), tag: tag.clone(), }, ); dict.insert( "name".into(), Value { value: UntaggedValue::Primitive(Primitive::String(s.name)), tag: tag.clone(), }, );
Value {
value: UntaggedValue::Row(dict),
tag,
}
}
fn auto(s: &MyStruct, tag: Tag) -> Value { serdenu::tovalue(s, tag).unwrap() } ```