Skip to main content

event

Attribute Macro event 

Source
#[event]
Expand description

Unified macro for defining events with static channels.

Generates PublishableEvent, SubscribableEvent, and AsyncPublishableEvent trait implementations.

§Parameters

  • channel_size: Buffer size of the channel (default: 8 for MPSC, 1 for PubSub)
  • subs: Max subscribers (triggers PubSub mode, default: 4)
  • pubs: Max publishers (triggers PubSub mode, default: 1)

If subs or pubs is specified, PubSub channel is used; otherwise MPSC channel.

§Examples

// MPSC channel (single consumer)
#[event(channel_size = 16)]
#[derive(Clone, Copy, Debug)]
pub struct KeyboardEvent { /* ... */ }

// PubSub channel (multiple subscribers)
#[event(channel_size = 4, subs = 8, pubs = 2)]
#[derive(Clone, Copy, Debug)]
pub struct LedIndicatorEvent { /* ... */ }