rdftk_io/turtle/
reader.rs

1use crate::common::parser::parse_turtle_doc;
2use objio::ObjectReader;
3use rdftk_core::error::Error;
4use rdftk_core::model::graph::Graph;
5use std::io::Read;
6
7// ------------------------------------------------------------------------------------------------
8// Public Types
9// ------------------------------------------------------------------------------------------------
10
11#[derive(Debug, Default)]
12pub struct TurtleReader {}
13
14// ------------------------------------------------------------------------------------------------
15// Implementations
16// ------------------------------------------------------------------------------------------------
17
18impl ObjectReader<Graph> for TurtleReader {
19    type Error = Error;
20
21    fn read<R>(&self, r: &mut R) -> Result<Graph, Self::Error>
22    where
23        R: Read,
24    {
25        let mut buffer = String::new();
26        r.read_to_string(&mut buffer)?;
27        parse_turtle_doc(buffer)
28    }
29}