deltachat::events::payload

Enum EventType

source
pub enum EventType {
Show 45 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, }, IncomingWebxdcNotify { contact_id: ContactId, msg_id: MsgId, text: String, href: Option<String>, }, 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>, }, AccountsChanged, AccountsItemChanged, 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 message 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

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

§

ReactionsChanged

Reactions for the message changed.

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.

§

IncomingReaction

Reactions for the message changed.

Fields

§contact_id: ContactId

ID of the contact whose reaction set is changed.

§msg_id: MsgId

ID of the message for which reactions were changed.

§reaction: Reaction

The reaction.

§

IncomingWebxdcNotify

A webxdc wants an info message or a changed summary to be notified.

Fields

§contact_id: ContactId

ID of the contact sending.

§msg_id: MsgId

ID of the added info message or webxdc instance in case of summary change.

§text: String

Text to notify.

§href: Option<String>

Link assigned to this notification, if any.

§

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

§chat_id: ChatId

ID of the chat where the message is assigned.

§msg_id: MsgId

ID of the message.

§

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

§chat_id: ChatId

ID of the chat which the message belongs to.

§msg_id: MsgId

ID of the message that was successfully sent.

§

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

§chat_id: ChatId

ID of the chat which the message belongs to.

§msg_id: MsgId

ID of the message that could not be sent.

§

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

§chat_id: ChatId

ID of the chat which the message belongs to.

§msg_id: MsgId

ID of the message that was read.

§

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

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

§

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.

Fields

§chat_id: ChatId

Chat ID.

§timer: Timer

New ephemeral timer value.

§

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

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

§

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

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

§

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

§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

§

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.

Fields

§key: Config

Configuration key.

§

WebxdcStatusUpdate

Webxdc status update received.

Fields

§msg_id: MsgId

Message ID.

§status_update_serial: StatusUpdateSerial

Status update ID.

§

WebxdcRealtimeData

Data received over an ephemeral peer channel.

Fields

§msg_id: MsgId

Message ID.

§data: Vec<u8>

Realtime data.

§

WebxdcRealtimeAdvertisementReceived

Advertisement received over an ephemeral peer channel. This can be used by bots to initiate peer-to-peer communication from their side.

Fields

§msg_id: MsgId

Message ID of the webxdc instance.

§

WebxdcInstanceDeleted

Inform that a message containing a webxdc instance has been deleted.

Fields

§msg_id: MsgId

ID of the deleted message.

§

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.

Fields

§chat_id: Option<ChatId>

ID of the changed chat

§

AccountsChanged

Inform that the list of accounts has changed (an account removed or added or (not yet implemented) the account order changes)

This event is only emitted by the account manager

§

AccountsItemChanged

Inform that an account property that might be shown in the account list changed, namely:

This event is emitted from the account whose property changed.

§

EventChannelOverflow

Inform than some events have been skipped due to event channel overflow.

Fields

§n: u64

Number of events skipped.

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 PartialEq for EventType

source§

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

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

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

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

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

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

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

§

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, 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

source§

type Output = T

Should always be Self
source§

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

source§

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>,

source§

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>,

source§

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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T