codama_nodes/display_nodes/
string_display_node.rs1use 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}