Struct json_event_parser::JsonReader [−][src]
pub struct JsonReader<R: BufRead> { /* fields omitted */ }
Expand description
A simple JSON streaming parser.
Does not allocate except a stack to check if array and object opening and closing are properly nested.
This stack size might be limited using the method max_stack_size
.
Example:
use json_event_parser::{JsonReader, JsonEvent}; use std::io::Cursor; let json = b"{\"foo\": 1}"; let mut reader = JsonReader::from_reader(Cursor::new(json)); let mut buffer = Vec::new(); assert_eq!(JsonEvent::StartObject, reader.read_event(&mut buffer)?); assert_eq!(JsonEvent::ObjectKey("foo"), reader.read_event(&mut buffer)?); assert_eq!(JsonEvent::Number("1"), reader.read_event(&mut buffer)?); assert_eq!(JsonEvent::EndObject, reader.read_event(&mut buffer)?); assert_eq!(JsonEvent::Eof, reader.read_event(&mut buffer)?);
Implementations
impl<R: BufRead> JsonReader<R>
[src]
impl<R: BufRead> JsonReader<R>
[src]pub fn from_reader(reader: R) -> Self
[src]
pub fn max_stack_size(&mut self, size: usize) -> &mut Self
[src]
pub fn max_stack_size(&mut self, size: usize) -> &mut Self
[src]Maximal allowed number of nested object and array openings. Infinite by default.
pub fn read_event<'a>(
&mut self,
buffer: &'a mut Vec<u8>
) -> Result<JsonEvent<'a>>
[src]
&mut self,
buffer: &'a mut Vec<u8>
) -> Result<JsonEvent<'a>>
Auto Trait Implementations
impl<R> RefUnwindSafe for JsonReader<R> where
R: RefUnwindSafe,
R: RefUnwindSafe,
impl<R> Send for JsonReader<R> where
R: Send,
R: Send,
impl<R> Sync for JsonReader<R> where
R: Sync,
R: Sync,
impl<R> Unpin for JsonReader<R> where
R: Unpin,
R: Unpin,
impl<R> UnwindSafe for JsonReader<R> where
R: UnwindSafe,
R: UnwindSafe,