1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
//! `Ipld` codecs. use crate::error::BlockError; use crate::ipld::Ipld; use std::error::Error; /// Codec trait. pub trait Codec { /// Codec version. const VERSION: cid::Version; /// Codec code. const CODEC: cid::Codec; /// Error type. type Error: Error + Into<BlockError>; /// Encode function. fn encode(ipld: &Ipld) -> Result<Box<[u8]>, Self::Error>; /// Decode function. fn decode(data: &[u8]) -> Result<Ipld, Self::Error>; }