[][src]Struct rio_turtle::NQuadsParser

pub struct NQuadsParser<R: BufRead> { /* fields omitted */ }

A N-Quads streaming parser.

It implements the QuadParser 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 of people using the QuadParser API:

use rio_turtle::NQuadsParser;
use rio_api::parser::QuadParser;
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()).unwrap().parse_all(&mut |t| {
    if t.predicate == rdf_type && t.object == schema_person.into() {
        count += 1;
    }
}).unwrap();
assert_eq!(2, count)

Methods

impl<R: BufRead> NQuadsParser<R>[src]

pub fn new(reader: R) -> Result<Self, TurtleError>[src]

Trait Implementations

impl<R: BufRead> QuadParser for NQuadsParser<R>[src]

type Error = TurtleError

fn parse_all<impl FnMut(Quad) -> ()>(
    &mut self,
    on_quad: &mut impl FnMut(Quad) -> ()
) -> Result<(), Self::Error> where
    impl FnMut(Quad) -> (): FnMut(Quad), 
[src]

Parses the complete file and calls on_quad each time a new quad is read.

fn into_iter<T, E, F>(
    self,
    convert_quad: F
) -> QuadsParserIterator<T, E, F, Self> where
    E: From<Self::Error>,
    F: FnMut(Quad) -> Result<T, E>, 
[src]

Converts the parser into a Result<T, E> iterator. Read more

Auto Trait Implementations

impl<R> Sync for NQuadsParser<R> where
    R: Sync

impl<R> Send for NQuadsParser<R> where
    R: Send

impl<R> Unpin for NQuadsParser<R> where
    R: Unpin

impl<R> RefUnwindSafe for NQuadsParser<R> where
    R: RefUnwindSafe

impl<R> UnwindSafe for NQuadsParser<R> where
    R: UnwindSafe

Blanket Implementations

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]