Skip to main content

InboundEventHandler

Trait InboundEventHandler 

Source
pub trait InboundEventHandler: Send + Sync {
Show 13 methods // Provided methods fn on_dm_received(&self, _chat_id: &str, _msg: &Message, _is_new: bool) { ... } fn on_file_received(&self, _chat_id: &str, _msg: &Message, _is_new: bool) { ... } fn on_reaction_received(&self, _chat_id: &str, _msg: &Message) { ... } fn on_message_deleted(&self, _chat_id: &str, _message_id: &str) { ... } fn on_community_invite(&self, _community_id: &str) { ... } fn on_community_message( &self, _chat_id: &str, _msg: &Message, _is_new: bool, ) { ... } fn on_community_update( &self, _chat_id: &str, _target_id: &str, _msg: &Message, ) { ... } fn on_community_removed(&self, _chat_id: &str, _target_id: &str) { ... } fn on_community_presence( &self, _chat_id: &str, _npub: &str, _joined: bool, _event_id: &str, _created_at: u64, _invited_by: Option<&str>, _invited_label: Option<&str>, ) { ... } fn on_community_typing(&self, _chat_id: &str, _npub: &str, _until: u64) { ... } fn on_community_webxdc( &self, _chat_id: &str, _npub: &str, _topic_id: &str, _node_addr: Option<&str>, _event_id: &str, _created_at: u64, ) { ... } fn on_community_self_removed(&self, _community_id: &str) { ... } fn on_community_refreshed(&self, _community_id: &str) { ... }
}
Expand description

Platform-specific callbacks for inbound event processing.

Same pattern as SendCallback/ProfileSyncHandler — trait with default no-ops. Platforms implement only the hooks they need.

Provided Methods§

Source

fn on_dm_received(&self, _chat_id: &str, _msg: &Message, _is_new: bool)

A DM text message was received and committed to STATE + DB.

Source

fn on_file_received(&self, _chat_id: &str, _msg: &Message, _is_new: bool)

A DM file attachment was received and committed to STATE + DB.

Source

fn on_reaction_received(&self, _chat_id: &str, _msg: &Message)

A reaction was received and applied to a message.

Source

fn on_message_deleted(&self, _chat_id: &str, _message_id: &str)

A previously-stored message was deleted by its sender (Layer 2 cooperative hide via NIP-09 over NIP-17). Frontend drops the row.

Source

fn on_community_invite(&self, _community_id: &str)

A Community invite was received over a gift wrap and the local user was joined (member-view Community persisted). Platform refreshes the Community subscription so messages start flowing, and surfaces the new Community in the UI.

Source

fn on_community_message(&self, _chat_id: &str, _msg: &Message, _is_new: bool)

A new Community channel message was received, ingested into STATE, and persisted.

Source

fn on_community_update(&self, _chat_id: &str, _target_id: &str, _msg: &Message)

A reaction or edit was applied to an existing Community message. target_id is the affected message; msg is the live-updated view.

Source

fn on_community_removed(&self, _chat_id: &str, _target_id: &str)

A Community message was removed (cooperative delete / moderation tombstone).

Source

fn on_community_presence( &self, _chat_id: &str, _npub: &str, _joined: bool, _event_id: &str, _created_at: u64, _invited_by: Option<&str>, _invited_label: Option<&str>, )

A join/leave presence announcement. created_at is the authenticated inner timestamp; invited_by/invited_label carry invite attribution when present.

Source

fn on_community_typing(&self, _chat_id: &str, _npub: &str, _until: u64)

A Community typing indicator (ephemeral). until is the unix-secs the typer stops being active.

Source

fn on_community_webxdc( &self, _chat_id: &str, _npub: &str, _topic_id: &str, _node_addr: Option<&str>, _event_id: &str, _created_at: u64, )

A WebXDC realtime peer signal. node_addr = Some advertises an Iroh node, None = peer-left.

Source

fn on_community_self_removed(&self, _community_id: &str)

The local user was removed from a Community (kick / ban / a leave authored on another device). Local data is torn down (epoch keys retained); the platform surfaces it + refreshes subs.

Source

fn on_community_refreshed(&self, _community_id: &str)

A Community’s control plane was refreshed in realtime (banlist/roles/metadata/mode change, or a re-founding followed). The platform re-reads display state.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§