#[rewrite_packet_message]Expand description
Rewrites an individual message inside a demo packet.
A raw handler can receive packet metadata and payload bytes. A typed handler
can receive a protobuf message; the macro infers the packet message id from
that protobuf type. Mutable protobuf arguments may return
MessageRewrite::Rewrite to re-encode the modified message.
§Parameters
A raw handler can receive ctx: &Context, tick: u32, msg_type: i32,
and payload: &[u8]. A typed handler can receive ctx: &Context,
tick: u32, and one protobuf message by value, shared reference, or mutable
reference. Parameters can appear in any order.
Return Result<MessageRewrite, ParserError>.
§Examples
§Drop a decoded protobuf message
#[rewrite_packet_message]
fn remove_chat(&mut self, _msg: CDotaUserMsgChatMessage) -> Result<MessageRewrite, ParserError> {
Ok(MessageRewrite::Drop)
}§Mutate a decoded protobuf message
#[rewrite_packet_message]
fn redact_chat(
&mut self,
msg: &mut CDotaUserMsgChatMessage,
) -> Result<MessageRewrite, ParserError> {
msg.message_text = Some("[redacted]".to_string());
Ok(MessageRewrite::Rewrite)
}