Trait ToJsonNode

Source
pub trait ToJsonNode {
    // Required method
    fn to_json_node(&self) -> JsonNode;
}
Expand description

A trait for converting a type into a JsonNode.

Required Methods§

Source

fn to_json_node(&self) -> JsonNode

Converts the type into a JsonNode.

§Implementing the Trait
use json_node::{JsonNode, JsonPropertyMap, ToJsonNode};
     
// Define some struct you want to convert into a `JsonNode`.
struct Person {
    name: String,
    age: i64,
}
 
// Implement the trait for your struct.
impl ToJsonNode for Person {
    fn to_json_node(&self) -> JsonNode {
        // Create a `JsonNode::Object` with the properties of your struct.
        JsonNode::Object(JsonPropertyMap::from([
            // The key is the name of the property. The value is the value of the property.
            ("name".to_owned(), JsonNode::String(self.name.clone())),
            // You can convert any type that implements `ToJsonNode` into a `JsonNode`.
            ("age".to_owned(), self.age.to_json_node()),
        ]))
    }
}
 
let person = Person {
    name: "John Doe".to_owned(),
    age: 42,
};
 
let person_node = person.to_json_node();
let person_node_json = person_node.to_json_string();
assert_eq!(
    person_node_json,
    r#"{"name":"John Doe","age":42}"#
);

Implementations on Foreign Types§

Source§

impl ToJsonNode for &str

Source§

impl ToJsonNode for Option<&str>

Source§

impl ToJsonNode for Option<bool>

Source§

impl ToJsonNode for Option<f32>

Source§

impl ToJsonNode for Option<f64>

Source§

impl ToJsonNode for Option<i32>

Source§

impl ToJsonNode for Option<i64>

Source§

impl ToJsonNode for Option<u32>

Source§

impl ToJsonNode for Option<String>

Source§

impl ToJsonNode for bool

Source§

impl ToJsonNode for f32

Source§

impl ToJsonNode for f64

Source§

impl ToJsonNode for i32

Source§

impl ToJsonNode for i64

Source§

impl ToJsonNode for u32

Source§

impl ToJsonNode for String

Source§

impl<E: Error> ToJsonNode for Result<&str, E>

Source§

impl<E: Error> ToJsonNode for Result<bool, E>

Source§

impl<E: Error> ToJsonNode for Result<f32, E>

Source§

impl<E: Error> ToJsonNode for Result<f64, E>

Source§

impl<E: Error> ToJsonNode for Result<i32, E>

Source§

impl<E: Error> ToJsonNode for Result<i64, E>

Source§

impl<E: Error> ToJsonNode for Result<u32, E>

Source§

impl<E: Error> ToJsonNode for Result<String, E>

Source§

impl<T: ToJsonNode> ToJsonNode for [T]

Source§

impl<T: ToJsonNode> ToJsonNode for BinaryHeap<(String, T)>

Source§

impl<T: ToJsonNode> ToJsonNode for BinaryHeap<T>

Source§

impl<T: ToJsonNode> ToJsonNode for BTreeSet<(String, T)>

Source§

impl<T: ToJsonNode> ToJsonNode for BTreeSet<T>

Source§

impl<T: ToJsonNode> ToJsonNode for LinkedList<(String, T)>

Source§

impl<T: ToJsonNode> ToJsonNode for LinkedList<T>

Source§

impl<T: ToJsonNode> ToJsonNode for VecDeque<(String, T)>

Source§

impl<T: ToJsonNode> ToJsonNode for VecDeque<T>

Source§

impl<T: ToJsonNode> ToJsonNode for Vec<(String, T)>

Source§

impl<T: ToJsonNode> ToJsonNode for Vec<T>

Source§

impl<T: ToJsonNode> ToJsonNode for HashSet<(String, T)>

Source§

impl<T: ToJsonNode> ToJsonNode for HashSet<T>

Source§

impl<T: ToJsonNode, const COUNT: usize> ToJsonNode for [T; COUNT]

Source§

impl<V: ToJsonNode> ToJsonNode for BTreeMap<String, V>

Source§

impl<V: ToJsonNode> ToJsonNode for HashMap<String, V>

Implementors§