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}