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§
Sourcefn on_dm_received(&self, _chat_id: &str, _msg: &Message, _is_new: bool)
fn on_dm_received(&self, _chat_id: &str, _msg: &Message, _is_new: bool)
A DM text message was received and committed to STATE + DB.
Sourcefn on_file_received(&self, _chat_id: &str, _msg: &Message, _is_new: bool)
fn on_file_received(&self, _chat_id: &str, _msg: &Message, _is_new: bool)
A DM file attachment was received and committed to STATE + DB.
Sourcefn on_reaction_received(&self, _chat_id: &str, _msg: &Message)
fn on_reaction_received(&self, _chat_id: &str, _msg: &Message)
A reaction was received and applied to a message.
Sourcefn on_message_deleted(&self, _chat_id: &str, _message_id: &str)
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.
Sourcefn on_community_invite(&self, _community_id: &str)
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.
Sourcefn on_community_message(&self, _chat_id: &str, _msg: &Message, _is_new: bool)
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.
Sourcefn on_community_update(&self, _chat_id: &str, _target_id: &str, _msg: &Message)
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.
Sourcefn on_community_removed(&self, _chat_id: &str, _target_id: &str)
fn on_community_removed(&self, _chat_id: &str, _target_id: &str)
A Community message was removed (cooperative delete / moderation tombstone).
Sourcefn 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_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.
Sourcefn on_community_typing(&self, _chat_id: &str, _npub: &str, _until: u64)
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.
Sourcefn 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_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.
Sourcefn on_community_self_removed(&self, _community_id: &str)
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.
Sourcefn on_community_refreshed(&self, _community_id: &str)
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.
Sourcefn on_community_dissolved(&self, _community_id: &str)
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".