crdb_core/
check_string.rs1pub fn check_string(s: &str) -> crate::Result<()> {
2 if s.contains('\0') {
3 return Err(crate::Error::NullByteInString);
4 }
5 Ok(())
6}
7
8pub fn check_strings(v: &serde_json::Value) -> crate::Result<()> {
9 match v {
10 serde_json::Value::Null => (),
11 serde_json::Value::Bool(_) => (),
12 serde_json::Value::Number(_) => (),
13 serde_json::Value::String(s) => check_string(s)?,
14 serde_json::Value::Array(a) => {
15 for v in a.iter() {
16 check_strings(v)?;
17 }
18 }
19 serde_json::Value::Object(m) => {
20 for (k, v) in m.iter() {
21 check_string(k)?;
22 check_strings(v)?;
23 }
24 }
25 }
26 Ok(())
27}