30 lines
1.1 KiB
Rust
30 lines
1.1 KiB
Rust
pub(super) fn json_scalar_to_string(value: &serde_json::Value) -> Option<String> {
|
|
match value {
|
|
serde_json::Value::String(value) => Some(value.clone()),
|
|
serde_json::Value::Number(value) => Some(value.to_string()),
|
|
serde_json::Value::Bool(value) => Some(value.to_string()),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
pub(super) fn json_scalar_array_to_strings(value: &serde_json::Value) -> Option<Vec<String>> {
|
|
value
|
|
.as_array()
|
|
.map(|sequence| sequence.iter().filter_map(json_scalar_to_string).collect())
|
|
}
|
|
|
|
pub(super) fn yaml_value_to_string(value: &serde_yaml::Value) -> Option<String> {
|
|
match value {
|
|
serde_yaml::Value::String(value) => Some(value.clone()),
|
|
serde_yaml::Value::Number(value) => Some(value.to_string()),
|
|
serde_yaml::Value::Bool(value) => Some(value.to_string()),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
pub(super) fn yaml_value_to_string_vec(value: &serde_yaml::Value) -> Option<Vec<String>> {
|
|
value
|
|
.as_sequence()
|
|
.map(|sequence| sequence.iter().filter_map(yaml_value_to_string).collect())
|
|
}
|