jasondb 0.2.7

A Blazingly-Fast, JSON-Based, Log-Structured Database.
Documentation
use crate::error::JasonError;

use humphrey_json::Value;

pub fn get_value(index: &str, json: &Value) -> Value {
    let indexing_path = index.split('.');
    let mut current_json = json;
    for index in indexing_path {
        match current_json.get(index) {
            Some(value) => current_json = value,
            None => return Value::Null,
        }
    }

    current_json.clone()
}

pub fn get_number(index: &str, json: &Value) -> Result<f64, JasonError> {
    let value = get_value(index, json);
    let number = value.as_number().ok_or(JasonError::JsonError)?;

    Ok(number)
}