Enum deltachat::EventType

source ·
pub enum EventType {
Show 40 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, }, WebxdcRealtimeData { msg_id: MsgId, data: Vec<u8>, }, 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

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

§

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.

§

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

§

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

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

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

source§

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

impl<T> Conv for T

§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. 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.
§

impl<T> FmtForward for T

§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
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.

§

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

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
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
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. 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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,