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§
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.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".