ipld 0.0.2

IPLD types and interfaces
Documentation
use cid::Error as CidError;
use failure::Fail;
use std::{convert::Infallible, num::TryFromIntError, string::FromUtf8Error};

#[derive(Debug, Fail)]
pub enum Error {
    #[fail(display = "Cid error: {}", _0)]
    Cid(CidError),

    #[fail(display = "IPLD Codec error: {}", _0)]
    Codec(failure::Error),

    #[fail(display = "Invalid data received from context: {}", _0)]
    Context(failure::Error),

    #[fail(display = "Invalid IPLD data type:: {}", _0)]
    Ipld(failure::Error),
}

impl From<CidError> for Error {
    fn from(err: CidError) -> Self {
        Error::Cid(err)
    }
}

impl From<FromUtf8Error> for Error {
    fn from(err: FromUtf8Error) -> Self {
        Error::Codec(err.into())
    }
}

impl From<TryFromIntError> for Error {
    fn from(err: TryFromIntError) -> Self {
        Error::Codec(err.into())
    }
}

impl From<Infallible> for Error {
    fn from(err: Infallible) -> Self {
        Error::Codec(err.into())
    }
}