pub trait ProtocolHandler<Message, Codec, ErrorMessage>where
Codec: Default,{
// Required methods
fn decode(
&self,
flow_key: (IpAddr, u16, IpAddr, u16),
protocol: TransportProtocol,
packet_data: &[u8],
exporter_peers: &mut HashMap<(IpAddr, u16, IpAddr, u16), (Codec, BytesMut)>,
) -> Option<Vec<DecodeOutcome<Message, ErrorMessage>>>;
fn serialize(
&self,
data: DecodeOutcome<Message, ErrorMessage>,
) -> Result<Value>;
}