1
2
3
4
5
6
7
8
9
10
11
12
pub fn parse(selector: String, json: serde_json::Value) -> Result<String, RatError> {
    let parts = selector.split(".");
    let mut selected = &json;
    for p in parts {
        selected = &selected[p];
    }

    match selected.as_str() {
        Some(v) => Ok(v.to_string()),
        None => Err(RatError::InvalidSelector(selector)),
    }
}