surrealml_core/storage/header/
string_value.rs1#[derive(Debug, PartialEq)]
9pub struct StringValue {
10 pub value: Option<String>,
11}
12
13
14impl StringValue {
15
16 pub fn fresh() -> Self {
21 StringValue {
22 value: None,
23 }
24 }
25
26 pub fn from_string(value: String) -> Self {
34 match value.as_str() {
35 "" => StringValue {
36 value: None,
37 },
38 _ => StringValue {
39 value: Some(value),
40 },
41 }
42 }
43
44 pub fn to_string(&self) -> String {
49 match &self.value {
50 Some(value) => value.to_string(),
51 None => String::from(""),
52 }
53 }
54
55}
56
57
58#[cfg(test)]
59mod tests {
60 use super::*;
61
62 #[test]
63 fn test_fresh() {
64 let string_value = StringValue::fresh();
65 assert_eq!(string_value, StringValue {
66 value: None,
67 });
68 }
69
70 #[test]
71 fn test_from_string() {
72 let string_value = StringValue::from_string(String::from("test"));
73 assert_eq!(string_value, StringValue {
74 value: Some(String::from("test")),
75 });
76 }
77
78 #[test]
79 fn test_from_string_none() {
80 let string_value = StringValue::from_string(String::from(""));
81 assert_eq!(string_value, StringValue {
82 value: None,
83 });
84 }
85
86 #[test]
87 fn test_to_string() {
88 let string_value = StringValue::from_string(String::from("test"));
89 assert_eq!(string_value.to_string(), String::from("test"));
90 }
91
92 #[test]
93 fn test_to_string_none() {
94 let string_value = StringValue {
95 value: None,
96 };
97 assert_eq!(string_value.to_string(), String::from(""));
98 }
99}