wacore-derive 0.4.0

Derive macros for wacore protocol types
Documentation

Derive macros for wacore protocol types.

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

Example

use wacore_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,
}