Skip to main content

from_node

Function from_node 

Source
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])");