Skip to main content

InboundEventHandler

Trait InboundEventHandler 

Source
pub trait InboundEventHandler: Send + Sync {
Show 14 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) { ... } fn on_community_dissolved(&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.

Source

fn on_community_dissolved(&self, _community_id: &str)

A Community was DISSOLVED by its owner (CORD-02 §9): sealed read-only, held keys still open history but nothing new is honored. The platform surfaces the grave.

Dyn Compatibility§

This trait is dyn compatible.

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

Implementors§