pub trait ProtocolParser: Sized {
    fn check_id(id: &str) -> bool;
fn parse(pp: ProtocolPayload) -> Result<Self>; }
Expand description

Map a ProtocolPayload to a protocol specific type

This trait should be implemented for the facade enum-type of a protocol, meaning that the usage will look something like this.

async fn handle_message(&mut self, _: &mut Context, msg: Routed<Any>) -> Result<()> {
    let protocol_payload = ProtocolPayload::decode(msg.payload())?;
    let resp = MyProtocolResponse::parse(protocol_payload)?;
    println!("{:?}", resp);
    Ok(())
}

Required methods

A function which checks whether this parser should be called for a particular protocol payload.

Internally it’s recommended to use static strings and a set operation to speed up repeated queries.

Implementors