prompt_graph_core/utils/
mod.rs

1use crate::proto::serialized_value::Val;
2use crate::proto::SerializedValue;
3
4
5pub mod wasm_error;
6
7pub fn uppercase_first_letter(s: &str) -> String {
8    let mut c = s.chars();
9    match c.next() {
10        None => String::new(),
11        Some(f) => f.to_uppercase().collect::<String>() + c.as_str(),
12    }
13}
14
15pub fn lowercase_first_letter(s: &str) -> String {
16    let mut c = s.chars();
17    match c.next() {
18        None => String::new(),
19        Some(f) => f.to_lowercase().collect::<String>() + c.as_str(),
20    }
21}
22
23
24pub fn serialized_value_to_string(v: &SerializedValue) -> String {
25    if let Some(v) = &v.val {
26        match v {
27            Val::Float(f) => { f.to_string() }
28            Val::Number(f) => { f.to_string() }
29            Val::String(s) => { s.to_string()}
30            Val::Boolean(b) => { b.to_string()}
31            Val::Array(a) => {
32                a.values.iter()
33                    .map(|v| serialized_value_to_string(&v.clone()))
34                    .collect::<Vec<String>>().join(", ")
35            }
36            Val::Object(o) => {
37                o.values.iter()
38                    .map(|(k, v)| format!("{}: {}", k, serialized_value_to_string(&v.clone())))
39                    .collect::<Vec<String>>().join(", ")
40            }
41        }
42    } else {
43        String::from("None")
44    }
45
46}