1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
mod codec; mod event_builder; mod sink; mod source; pub use self::sink::Sink; pub use self::source::Source; use crate::prelude::*; pub use event_builder::EventBuilder; pub use ontio_derive_codec::*; #[derive(Debug)] pub enum Error { UnexpectedEOF, IrregularData, InvalidUtf8, } pub trait Encoder { fn encode(&self, sink: &mut Sink); } pub trait Dispatcher { fn dispatch(&mut self, payload: &[u8]) -> Vec<u8>; } #[doc(hidden)] pub trait Decoder<'a>: Sized { fn decode(source: &mut Source<'a>) -> Result<Self, Error>; }