Struct rio_turtle::NQuadsParser
source · [−]pub struct NQuadsParser<R: BufRead> { /* private fields */ }
Expand description
A N-Quads and N-Quads-star streaming parser.
It implements the QuadsParser
trait.
Its memory consumption is linear in the size of the longest line of the file. It does not do any allocation during parsing except buffer resizing if a line significantly longer than the previous is encountered.
Count the number of people using the QuadsParser
API:
use rio_turtle::{NQuadsParser, TurtleError};
use rio_api::parser::QuadsParser;
use rio_api::model::NamedNode;
let file = b"<http://example.com/foo> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://schema.org/Person> <http://example.com/> .
<http://example.com/foo> <http://schema.org/name> \"Foo\" <http://example.com/> .
<http://example.com/bar> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://schema.org/Person> .
<http://example.com/bar> <http://schema.org/name> \"Bar\" .";
let rdf_type = NamedNode { iri: "http://www.w3.org/1999/02/22-rdf-syntax-ns#type" };
let schema_person = NamedNode { iri: "http://schema.org/Person" };
let mut count = 0;
NQuadsParser::new(file.as_ref()).parse_all(&mut |t| {
if t.predicate == rdf_type && t.object == schema_person.into() {
count += 1;
}
Ok(()) as Result<(), TurtleError>
})?;
assert_eq!(2, count);
Implementations
sourceimpl<R: BufRead> NQuadsParser<R>
impl<R: BufRead> NQuadsParser<R>
Trait Implementations
sourceimpl<R: BufRead> QuadsParser for NQuadsParser<R>
impl<R: BufRead> QuadsParser for NQuadsParser<R>
type Error = TurtleError
sourcefn parse_step<E: From<TurtleError>>(
&mut self,
on_quad: &mut impl FnMut(Quad<'_>) -> Result<(), E>
) -> Result<(), E>
fn parse_step<E: From<TurtleError>>(
&mut self,
on_quad: &mut impl FnMut(Quad<'_>) -> Result<(), E>
) -> Result<(), E>
Parses a small chunk of the file and calls on_quad
each time a new quad is read.
(A “small chunk” could be a line for an N-Quads parser.) Read more
Auto Trait Implementations
impl<R> RefUnwindSafe for NQuadsParser<R> where
R: RefUnwindSafe,
impl<R> Send for NQuadsParser<R> where
R: Send,
impl<R> Sync for NQuadsParser<R> where
R: Sync,
impl<R> Unpin for NQuadsParser<R> where
R: Unpin,
impl<R> UnwindSafe for NQuadsParser<R> where
R: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more