codama_nodes/value_nodes/
boolean_value_node.rs

1use codama_nodes_derive::node;
2
3#[node]
4pub struct BooleanValueNode {
5    // Data.
6    pub boolean: bool,
7}
8
9impl From<BooleanValueNode> for crate::Node {
10    fn from(val: BooleanValueNode) -> Self {
11        crate::Node::Value(val.into())
12    }
13}
14
15impl BooleanValueNode {
16    pub fn new(boolean: bool) -> Self {
17        Self { boolean }
18    }
19}
20
21#[cfg(test)]
22mod tests {
23    use super::*;
24
25    #[test]
26    fn new() {
27        assert!(BooleanValueNode::new(true).boolean);
28        assert!(!BooleanValueNode::new(false).boolean);
29    }
30
31    #[test]
32    fn to_json() {
33        let node = BooleanValueNode::new(true);
34        let json = serde_json::to_string(&node).unwrap();
35        assert_eq!(json, r#"{"kind":"booleanValueNode","boolean":true}"#);
36    }
37
38    #[test]
39    fn from_json() {
40        let json = r#"{"kind":"booleanValueNode","boolean":true}"#;
41        let node: BooleanValueNode = serde_json::from_str(json).unwrap();
42        assert_eq!(node, BooleanValueNode::new(true));
43    }
44}