Skip to main content

Crate wa_rs_derive

Crate wa_rs_derive 

Source
Expand description

Derive macros for wa_rs_core protocol types.

This crate provides derive macros for implementing the ProtocolNode trait on structs that represent WhatsApp protocol nodes.

§Example

use wa_rs_derive::{ProtocolNode, StringEnum};

/// A query request node.
/// Wire format: `<query request="interactive"/>`
#[derive(ProtocolNode)]
#[protocol(tag = "query")]
pub struct QueryRequest {
    #[attr(name = "request", default = "interactive")]
    pub request_type: String,
}

/// An enum with string representation.
#[derive(StringEnum)]
pub enum MemberAddMode {
    #[str = "admin_add"]
    AdminAdd,
    #[str = "all_member_add"]
    AllMemberAdd,
}

Derive Macros§

EmptyNode
Derive macro for empty protocol nodes (tag only, no attributes).
ProtocolNode
Derive macro for implementing ProtocolNode on structs with attributes.
StringEnum
Derive macro for enums with string representations.