Crate yajlish

Source
Expand description

yajlish is a low-level, event-based json parser based (loosely) on yajl. Use

    use yajlish::{Context, Handler, Status};

    pub struct FooCountHandler {
        count: usize,
    }

    impl Handler for FooCountHandler {
         
        fn handle_map_key(&mut self, _ctx: &Context, key: &str) -> Status {
            if key == "\"foo\"" {
                self.count += 1;
            }
            Status::Continue
        }
     
        fn handle_null(&mut self, _ctx: &Context) -> Status {
            Status::Continue
        }

        fn handle_bool(&mut self, _ctx: &Context, boolean: bool) -> Status {
            Status::Continue
        }

        fn handle_double(&mut self, _ctx: &Context, val: f64) -> Status {
            Status::Continue
        }
         
        fn handle_int(&mut self, _ctx: &Context, val: i64) -> Status {
            Status::Continue
        }

        fn handle_string(&mut self, _ctx: &Context, val: &str) -> Status {
            Status::Continue
        }

        fn handle_start_map(&mut self, _ctx: &Context) -> Status {
            Status::Continue
        }
         
        fn handle_start_array(&mut self, _ctx: &Context) -> Status {
            Status::Continue
        }

        fn handle_end_map(&mut self, _ctx: &Context) -> Status {
            Status::Continue
        }

        fn handle_end_array(&mut self, _ctx: &Context) -> Status {
            Status::Continue
        }
    }

Modules§

ndjson_handler
This Handler implementation converts JSON with an array into new-line delimited JSON.

Structs§

Context
The context passed to each Handler function. Context gives basic information about where it is at in the json document.
Parser
Main Parser struct.

Enums§

Enclosing
Brackets and Braces to keep track of.
ParserStatus
The state that the parser is in.
Status
The Status that each Handler method returns.

Traits§

Handler
Implement this trait to handle parse events.