Skip to main content

codama_nodes/display_nodes/
string_display_node.rs

1use crate::StringDisplayNode;
2
3impl StringDisplayNode {
4    pub fn new(slice_start: Option<u64>, slice_end: Option<u64>) -> Self {
5        Self {
6            slice_start,
7            slice_end,
8        }
9    }
10}
11
12#[cfg(test)]
13mod tests {
14    use super::*;
15
16    #[test]
17    fn new() {
18        let node = StringDisplayNode::new(Some(2), Some(6));
19        assert_eq!(node.slice_start, Some(2));
20        assert_eq!(node.slice_end, Some(6));
21    }
22
23    #[test]
24    fn default() {
25        let node = StringDisplayNode::default();
26        assert_eq!(node.slice_start, None);
27        assert_eq!(node.slice_end, None);
28    }
29
30    #[test]
31    fn to_json() {
32        let node = StringDisplayNode::new(Some(2), Some(6));
33        let json = serde_json::to_string(&node).unwrap();
34        assert_eq!(
35            json,
36            r#"{"kind":"stringDisplayNode","sliceStart":2,"sliceEnd":6}"#
37        );
38    }
39
40    #[test]
41    fn from_json() {
42        let json = r#"{"kind":"stringDisplayNode","sliceStart":2,"sliceEnd":6}"#;
43        let node: StringDisplayNode = serde_json::from_str(json).unwrap();
44        assert_eq!(node, StringDisplayNode::new(Some(2), Some(6)));
45    }
46}