pub fn from_node<'de, T: Deserialize<'de>>(
node: &'de Node,
) -> Result<T, AccessError>Available on crate feature
serde only.Expand description
Deserializes a user type from a node; &str fields can borrow from the node.
use one_brackets::Node;
use serde::{Deserialize, Serialize};
#[derive(Debug, PartialEq, Deserialize, Serialize)]
struct Root {
version: u32,
#[serde(with = "one_brackets::atom")]
object: String,
extra: Option<u32>,
}
let node: Node = "{2,c2f34349-b1e0-4060-8abf-3c59f38ac69f,}".parse()?;
let root: Root = one_brackets::from_node(&node)?;
assert_eq!(root.version, 2);
assert_eq!(root.extra, None);
assert_eq!(one_brackets::to_string(&root)?, "{2,c2f34349-b1e0-4060-8abf-3c59f38ac69f,}");
let err = one_brackets::from_str::<Root>("{2,\r\n{}}").unwrap_err();
assert_eq!(err.to_string(), "expected string or value, found empty list at line 2, column 1 (path [1])");