pub enum EventType {
Show 38 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, }, 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, }, WebxdcInstanceDeleted { msg_id: MsgId, }, AccountsBackgroundFetchDone, ChatlistChanged, ChatlistItemChanged { chat_id: Option<ChatId>, },
}
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

Fields

§chat_id: ChatId

Set if only a single chat is affected by the changes, otherwise 0.

§msg_id: MsgId

Set if only a single message is affected by the changes, otherwise 0.

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
§

ReactionsChanged

Fields

§chat_id: ChatId

ID of the chat which the message belongs to.

§msg_id: MsgId

ID of the message for which reactions were changed.

§contact_id: ContactId

ID of the contact whose reaction set is changed.

Reactions for the message changed.

§

IncomingMsg

Fields

§chat_id: ChatId

ID of the chat where the message is assigned.

§msg_id: MsgId

ID of the message.

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.

§

IncomingMsgBunch

Downloading a bunch of messages just finished.

§

MsgsNoticed(ChatId)

Messages were seen or noticed. chat id is always set.

§

MsgDelivered

Fields

§chat_id: ChatId

ID of the chat which the message belongs to.

§msg_id: MsgId

ID of the message that was successfully sent.

A single message is sent successfully. State changed from DC_STATE_OUT_PENDING to DC_STATE_OUT_DELIVERED, see dc_msg_get_state().

§

MsgFailed

Fields

§chat_id: ChatId

ID of the chat which the message belongs to.

§msg_id: MsgId

ID of the message that could not be sent.

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().

§

MsgRead

Fields

§chat_id: ChatId

ID of the chat which the message belongs to.

§msg_id: MsgId

ID of the message that was read.

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().

§

MsgDeleted

Fields

§chat_id: ChatId

ID of the chat where the message was prior to deletion. Never 0 or trash chat.

§msg_id: MsgId

ID of the deleted message. Never 0.

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.

§

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

Fields

§chat_id: ChatId

Chat ID.

§timer: Timer

New ephemeral timer value.

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

Fields

§progress: usize

Progress.

0=error, 1-999=progress in permille, 1000=success and done

§comment: Option<String>

Progress comment or error, something to display to the user.

Inform about the configuration progress started by configure().

§

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

Fields

§contact_id: ContactId

ID of the contact that wants to join.

§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.

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().

§

SecurejoinJoinerProgress

Fields

§contact_id: ContactId

ID of the inviting contact.

§progress: usize

Progress as: 400=vg-/vc-request-with-auth sent, typically shown as “alice@addr verified, introducing myself.” (Bob has verified alice and waits until Alice does the same for him) 1000=vg-member-added/vc-contact-confirm received

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.

§

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

Fields

§key: Config

Configuration key.

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

Fields

§msg_id: MsgId

Message ID.

§status_update_serial: StatusUpdateSerial

Status update ID.

Webxdc status update received.

§

WebxdcInstanceDeleted

Fields

§msg_id: MsgId

ID of the deleted message.

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

Fields

§chat_id: Option<ChatId>

ID of the changed chat

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.

Trait Implementations§

source§

impl Clone for EventType

source§

fn clone(&self) -> EventType

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for EventType

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for EventType

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl From<ReceiveProgress> for EventType

source§

fn from(source: ReceiveProgress) -> Self

Converts to this type from the input type.
source§

impl From<SendProgress> for EventType

source§

fn from(source: SendProgress) -> Self

Converts to this type from the input type.
source§

impl PartialEq for EventType

source§

fn eq(&self, other: &EventType) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Serialize for EventType

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Eq for EventType

source§

impl StructuralPartialEq for EventType

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, constructed: bool, tag: u32 ) -> TaggedParser<'a, Implicit, Self, E>

source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

§

impl<T> RpcMessage for T
where T: Debug + Serialize + DeserializeOwned + Send + Sync + Unpin + 'static,