pub enum EventType {
Show 42 variants
Info(String),
SmtpConnected(String),
ImapConnected(String),
SmtpMessageSent(String),
ImapMessageDeleted(String),
ImapMessageMoved(String),
ImapInboxIdle,
NewBlobFile(String),
DeletedBlobFile(String),
Warning(String),
Error(String),
ErrorSelfNotInGroup(String),
MsgsChanged {
chat_id: ChatId,
msg_id: MsgId,
},
ReactionsChanged {
chat_id: ChatId,
msg_id: MsgId,
contact_id: ContactId,
},
IncomingReaction {
contact_id: ContactId,
msg_id: MsgId,
reaction: Reaction,
},
IncomingMsg {
chat_id: ChatId,
msg_id: MsgId,
},
IncomingMsgBunch,
MsgsNoticed(ChatId),
MsgDelivered {
chat_id: ChatId,
msg_id: MsgId,
},
MsgFailed {
chat_id: ChatId,
msg_id: MsgId,
},
MsgRead {
chat_id: ChatId,
msg_id: MsgId,
},
MsgDeleted {
chat_id: ChatId,
msg_id: MsgId,
},
ChatModified(ChatId),
ChatEphemeralTimerModified {
chat_id: ChatId,
timer: Timer,
},
ContactsChanged(Option<ContactId>),
LocationChanged(Option<ContactId>),
ConfigureProgress {
progress: usize,
comment: Option<String>,
},
ImexProgress(usize),
ImexFileWritten(PathBuf),
SecurejoinInviterProgress {
contact_id: ContactId,
progress: usize,
},
SecurejoinJoinerProgress {
contact_id: ContactId,
progress: usize,
},
ConnectivityChanged,
SelfavatarChanged,
ConfigSynced {
key: Config,
},
WebxdcStatusUpdate {
msg_id: MsgId,
status_update_serial: StatusUpdateSerial,
},
WebxdcRealtimeData {
msg_id: MsgId,
data: Vec<u8>,
},
WebxdcRealtimeAdvertisementReceived {
msg_id: MsgId,
},
WebxdcInstanceDeleted {
msg_id: MsgId,
},
AccountsBackgroundFetchDone,
ChatlistChanged,
ChatlistItemChanged {
chat_id: Option<ChatId>,
},
EventChannelOverflow {
n: u64,
},
}
Expand description
Event payload.
Variants§
Info(String)
The library-user may write an informational string to the log.
This event should not be reported to the end-user using a popup or something like that.
SmtpConnected(String)
Emitted when SMTP connection is established and login was successful.
ImapConnected(String)
Emitted when IMAP connection is established and login was successful.
SmtpMessageSent(String)
Emitted when a message was successfully sent to the SMTP server.
ImapMessageDeleted(String)
Emitted when an IMAP message has been marked as deleted
ImapMessageMoved(String)
Emitted when an IMAP message has been moved
ImapInboxIdle
Emitted before going into IDLE on the Inbox folder.
NewBlobFile(String)
Emitted when an new file in the $BLOBDIR was created
DeletedBlobFile(String)
Emitted when an file in the $BLOBDIR was deleted
Warning(String)
The library-user should write a warning string to the log.
This event should not be reported to the end-user using a popup or something like that.
Error(String)
The library-user should report an error to the end-user.
As most things are asynchronous, things may go wrong at any time and the user should not be disturbed by a dialog or so. Instead, use a bubble or so.
However, for ongoing processes (eg. configure()) or for functions that are expected to fail (eg. dc_continue_key_transfer()) it might be better to delay showing these events until the function has really failed (returned false). It should be sufficient to report only the last error in a messasge box then.
ErrorSelfNotInGroup(String)
An action cannot be performed because the user is not in the group. Reported eg. after a call to dc_set_chat_name(), dc_set_chat_profile_image(), dc_add_contact_to_chat(), dc_remove_contact_from_chat(), dc_send_text_msg() or another sending function.
MsgsChanged
Messages or chats changed. One or more messages or chats changed for various reasons in the database:
- Messages sent, received or removed
- Chats created, deleted or archived
- A draft has been set
Fields
ReactionsChanged
Reactions for the message changed.
Fields
IncomingReaction
Reactions for the message changed.
Fields
IncomingMsg
There is a fresh message. Typically, the user will show an notification when receiving this message.
There is no extra #DC_EVENT_MSGS_CHANGED event send together with this event.
Fields
IncomingMsgBunch
Downloading a bunch of messages just finished.
MsgsNoticed(ChatId)
Messages were seen or noticed. chat id is always set.
MsgDelivered
A single message is sent successfully. State changed from DC_STATE_OUT_PENDING to DC_STATE_OUT_DELIVERED, see dc_msg_get_state().
Fields
MsgFailed
A single message could not be sent. State changed from DC_STATE_OUT_PENDING or DC_STATE_OUT_DELIVERED to DC_STATE_OUT_FAILED, see dc_msg_get_state().
Fields
MsgRead
A single message is read by the receiver. State changed from DC_STATE_OUT_DELIVERED to DC_STATE_OUT_MDN_RCVD, see dc_msg_get_state().
Fields
MsgDeleted
A single message was deleted.
This event means that the message will no longer appear in the messagelist. UI should remove the message from the messagelist in response to this event if the message is currently displayed.
The message may have been explicitly deleted by the user or expired. Internally the message may have been removed from the database, moved to the trash chat or hidden.
This event does not indicate the message deletion from the server.
Fields
ChatModified(ChatId)
Chat changed. The name or the image of a chat group was changed or members were added or removed. Or the verify state of a chat has changed. See dc_set_chat_name(), dc_set_chat_profile_image(), dc_add_contact_to_chat() and dc_remove_contact_from_chat().
This event does not include ephemeral timer modification, which is a separate event.
ChatEphemeralTimerModified
Chat ephemeral timer changed.
ContactsChanged(Option<ContactId>)
Contact(s) created, renamed, blocked, deleted or changed their “recently seen” status.
@param data1 (int) If set, this is the contact_id of an added contact that should be selected.
LocationChanged(Option<ContactId>)
Location of one or more contact has changed.
@param data1 (u32) contact_id of the contact for which the location has changed.
If the locations of several contacts have been changed,
eg. after calling dc_delete_all_locations(), this parameter is set to None
.
ConfigureProgress
Inform about the configuration progress started by configure().
Fields
ImexProgress(usize)
Inform about the import/export progress started by imex().
@param data1 (usize) 0=error, 1-999=progress in permille, 1000=success and done @param data2 0
ImexFileWritten(PathBuf)
A file has been exported. A file has been written by imex(). This event may be sent multiple times by a single call to imex().
A typical purpose for a handler of this event may be to make the file public to some system services.
@param data2 0
SecurejoinInviterProgress
Progress information of a secure-join handshake from the view of the inviter (Alice, the person who shows the QR code).
These events are typically sent after a joiner has scanned the QR code generated by dc_get_securejoin_qr().
Fields
progress: usize
Progress as: 300=vg-/vc-request received, typically shown as “bob@addr joins”. 600=vg-/vc-request-with-auth received, vg-member-added/vc-contact-confirm sent, typically shown as “bob@addr verified”. 800=contact added to chat, shown as “bob@addr securely joined GROUP”. Only for the verified-group-protocol. 1000=Protocol finished for this contact.
SecurejoinJoinerProgress
Progress information of a secure-join handshake from the view of the joiner (Bob, the person who scans the QR code). The events are typically sent while dc_join_securejoin(), which may take some time, is executed.
Fields
ConnectivityChanged
The connectivity to the server changed. This means that you should refresh the connectivity view and possibly the connectivtiy HTML; see dc_get_connectivity() and dc_get_connectivity_html() for details.
SelfavatarChanged
The user’s avatar changed.
Deprecated by ConfigSynced
.
ConfigSynced
A multi-device synced config value changed. Maybe the app needs to refresh smth. For uniformity this is emitted on the source device too. The value isn’t here, otherwise it would be logged which might not be good for privacy.
WebxdcStatusUpdate
Webxdc status update received.
WebxdcRealtimeData
Data received over an ephemeral peer channel.
WebxdcRealtimeAdvertisementReceived
Advertisement received over an ephemeral peer channel. This can be used by bots to initiate peer-to-peer communication from their side.
WebxdcInstanceDeleted
Inform that a message containing a webxdc instance has been deleted.
AccountsBackgroundFetchDone
Tells that the Background fetch was completed (or timed out). This event acts as a marker, when you reach this event you can be sure that all events emitted during the background fetch were processed.
This event is only emitted by the account manager
ChatlistChanged
Inform that set of chats or the order of the chats in the chatlist has changed.
Sometimes this is emitted together with UIChatlistItemChanged
.
ChatlistItemChanged
Inform that a single chat list item changed and needs to be rerendered.
If chat_id
is set to None, then all currently visible chats need to be rerendered, and all not-visible items need to be cleared from cache if the UI has a cache.
EventChannelOverflow
Inform than some events have been skipped due to event channel overflow.
Trait Implementations§
source§impl<'de> Deserialize<'de> for EventType
impl<'de> Deserialize<'de> for EventType
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for EventType
impl StructuralPartialEq for EventType
Auto Trait Implementations§
impl Freeze for EventType
impl RefUnwindSafe for EventType
impl Send for EventType
impl Sync for EventType
impl Unpin for EventType
impl UnwindSafe for EventType
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.