Skip to main content

jjpwrgem_parse/
check.rs

1use core::range::Range;
2
3use crate::{
4    Result,
5    tokens::TokenStream,
6    traverse::{Visitor, parse_tokens},
7};
8
9#[derive(Debug)]
10pub struct NoopVisitor;
11
12impl<'a> Visitor<'a> for NoopVisitor {
13    fn on_object_open(&mut self, _range: Range<usize>) {}
14    fn on_object_key(&mut self, _range: Range<usize>, _key: &'a str) {}
15    fn on_object_close(&mut self, _range: Range<usize>) {}
16    fn on_array_open(&mut self, _range: Range<usize>) {}
17    fn on_array_close(&mut self, _range: Range<usize>) {}
18    fn on_null(&mut self, _range: Range<usize>) {}
19    fn on_string(&mut self, _range: Range<usize>, _value: &'a str) {}
20    fn on_mantissa(&mut self, _range: Range<usize>, _mantissa: &'a str) {}
21    fn on_exponent(&mut self, _range: Range<usize>, _exponent: &'a str) {}
22    fn on_boolean(&mut self, _range: Range<usize>, _value: bool) {}
23    fn on_object_key_val_delim(&mut self) {}
24    fn on_item_delim(&mut self) {}
25}
26
27pub fn validate_str(json: &str) -> Result<()> {
28    let mut visitor = NoopVisitor;
29    parse_tokens(&mut TokenStream::new(json), json, true, &mut visitor)?;
30    Ok(())
31}