oxjelly 0.0.0

Parser and serializer for Jelly
Documentation
use std::io;

#[derive(Debug, thiserror::Error)]
pub enum JellyParseError {
    #[error(transparent)]
    Io(#[from] io::Error),

    #[error(transparent)]
    Syntax(#[from] JellySyntaxError),
}

#[derive(Debug, thiserror::Error)]
pub enum JellySyntaxError {
    #[error(transparent)]
    Protobuf(#[from] protobuf::Error),

    #[error(transparent)]
    IriParseError(#[from] oxrdf::IriParseError),

    #[error("Prefix ID not found: prefix_id = {0}, name_id = {1}")]
    PrefixIdNotFound(u32, u32),

    #[error("Name ID not found: prefix_id = {0}, name_id = {1}")]
    NameIdNotFound(u32, u32),

    #[error("Datatype ID not found: datatype_id = {0}")]
    DatatypeIdNotFound(u32),

    #[error("No previous subject")]
    NoPreviousSubject,

    #[error("No previous predicate")]
    NoPreviousPredicate,

    #[error("No previous object")]
    NoPreviousObject,

    #[error("No previous graph name")]
    NoPreviousGraphName,
}

impl From<JellySyntaxError> for io::Error {
    fn from(error: JellySyntaxError) -> Self {
        Self::new(io::ErrorKind::InvalidData, error)
    }
}