rdf 0.1.0

`rdf` is a library for the [Resource Description Framework](https://www.w3.org/RDF/) (RDF) and [SPARQL](https://www.w3.org/TR/rdf-sparql-query/) implemented in Rust.
Documentation
use std::fmt;
use std::error::Error as StdError;
use reader::input_reader::InputChars;

/// Different types of errors that can occur.
#[derive(Debug)]
pub enum ErrorType {
  /// RDF writer produces invalid RDF (e.g. if invalid node types are provided).
  InvalidWriterOutput,

  /// RDF lexer reads invalid RDF (e.g. non-closing string).
  InvalidReaderInput,

  /// RDF reader reads an invalid token (e.g. invalid node type).
  InvalidToken,

  /// RDF reader reaches the end of the input and stores the characters that were read last.
  EndOfInput(InputChars),

  /// Input reader encounters invalid byte encoding.
  InvalidByteEncoding,

  /// Incorrect namespace.
  InvalidNamespace
}


/// An error related to the rdf-rs module.
#[derive(Debug)]
pub struct Error {
  error_type: ErrorType,
  error: Box<StdError>
}


impl Error {
  /// Constructor of `Error`.
  pub fn new<E>(error_type: ErrorType, error: E) -> Error
    where E: Into<Box<StdError>> {
    Error {
      error_type: error_type,
      error: error.into()
    }
  }

  /// Returns the type of the error.
  pub fn error_type(&self) -> &ErrorType {
    &self.error_type
  }
}


impl fmt::Display for Error {
  fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
    self.error.fmt(f)
  }
}


impl StdError for Error {
  fn description(&self) -> &str {
    self.error.description()
  }
}