1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
extern crate regex;

mod getter;
mod number;
mod path;
mod path_parser;
mod reader;
mod sub_selector;
mod unescape;
mod util;
mod value;
mod wild;

pub use getter::Getter;
pub use number::Number;
use std::io;
pub use value::Value;

pub fn get(json: &str, path: &str) -> Value {
    Getter::new_from_utf8(json.as_bytes()).get(path)
}

pub fn parse(json: &str) -> Value {
    let mut getter = Getter::new_from_utf8(json.as_bytes());
    getter.next_value()
}

pub fn get_from_read<R>(r: R, path: &str) -> Value
where
    R: io::Read,
{
    Getter::new_from_read(r).get(path)
}

pub fn parse_from_read<R>(r: R) -> Value
where
    R: io::Read,
{
    let mut getter = Getter::new_from_read(r);
    getter.next_value()
}