use crate::error::BlockError;
use crate::ipld::Ipld;
use std::error::Error;
pub trait Codec {
const VERSION: cid::Version;
const CODEC: cid::Codec;
type Error: Error + Into<BlockError>;
fn encode(ipld: &Ipld) -> Result<Box<[u8]>, Self::Error>;
fn decode(data: &[u8]) -> Result<Ipld, Self::Error>;
}