#[non_exhaustive]pub enum SignalMaintenanceError {
CorruptKey(String),
Storage(Error),
Iq(IqError),
Signal(SignalProtocolError),
DrainCommitFailed,
DrainShuttingDown,
}Expand description
Failures of the background Signal maintenance surface: signed pre-key
rotation (Client::rotate_signed_pre_key) and cache durability
(Client::flush_pending_signal_state).
The split that matters to a caller is corruption versus everything else:
Self::CorruptKey will keep failing until the stored material is
replaced, while storage, IQ and drain failures are worth retrying.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
CorruptKey(String)
Key material is unusable: bad encoding, or a missing/wrong-sized field. Almost always a staged record that a retry would read back identically.
Storage(Error)
The storage backend failed a read, write or flush.
Iq(IqError)
The rotation IQ was rejected by the server or never reached it.
Signal(SignalProtocolError)
A Signal primitive failed (e.g. signing the new signed pre-key).
DrainCommitFailed
The inbound drain batch could not be committed, so the Signal cache was left unflushed on purpose and the server redelivers those messages.
DrainShuttingDown
The client is going away while an inbound drain is active; flushing there would persist ratchet advances whose messages have no durable row.
Trait Implementations§
Source§impl Debug for SignalMaintenanceError
impl Debug for SignalMaintenanceError
Source§impl Display for SignalMaintenanceError
impl Display for SignalMaintenanceError
Source§impl Error for SignalMaintenanceError
impl Error for SignalMaintenanceError
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Source§impl From<IqError> for SignalMaintenanceError
impl From<IqError> for SignalMaintenanceError
Source§impl From<SignalMaintenanceError> for SignalError
impl From<SignalMaintenanceError> for SignalError
Source§fn from(err: SignalMaintenanceError) -> Self
fn from(err: SignalMaintenanceError) -> Self
Source§impl From<SignalProtocolError> for SignalMaintenanceError
impl From<SignalProtocolError> for SignalMaintenanceError
Source§fn from(source: SignalProtocolError) -> Self
fn from(source: SignalProtocolError) -> Self
Auto Trait Implementations§
impl !RefUnwindSafe for SignalMaintenanceError
impl !UnwindSafe for SignalMaintenanceError
impl Freeze for SignalMaintenanceError
impl Send for SignalMaintenanceError
impl Sync for SignalMaintenanceError
impl Unpin for SignalMaintenanceError
impl UnsafeUnpin for SignalMaintenanceError
Blanket Implementations§
Source§impl<T> AggregateExpressionMethods for T
impl<T> AggregateExpressionMethods for T
Source§fn aggregate_distinct(self) -> Self::Outputwhere
Self: DistinctDsl,
fn aggregate_distinct(self) -> Self::Outputwhere
Self: DistinctDsl,
DISTINCT modifier for aggregate functions Read moreSource§fn aggregate_all(self) -> Self::Outputwhere
Self: AllDsl,
fn aggregate_all(self) -> Self::Outputwhere
Self: AllDsl,
ALL modifier for aggregate functions Read moreSource§fn aggregate_filter<P>(self, f: P) -> Self::Output
fn aggregate_filter<P>(self, f: P) -> Self::Output
Source§fn aggregate_order<O>(self, o: O) -> Self::Outputwhere
Self: OrderAggregateDsl<O>,
fn aggregate_order<O>(self, o: O) -> Self::Outputwhere
Self: OrderAggregateDsl<O>,
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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<E> ErrorChainExt for Ewhere
E: Error + 'static,
impl<E> ErrorChainExt for Ewhere
E: Error + 'static,
fn as_dyn_error(&self) -> &(dyn Error + 'static)
Source§fn sources(&self) -> Sources<'_> ⓘ
fn sources(&self) -> Sources<'_> ⓘ
Source§fn server_rejection(&self) -> Option<ServerRejection<'_>>
fn server_rejection(&self) -> Option<ServerRejection<'_>>
Source§fn is_timeout(&self) -> bool
fn is_timeout(&self) -> bool
Source§fn store_failure(&self) -> Option<&StoreError>
fn store_failure(&self) -> Option<&StoreError>
Source§impl<T> IntoSql for T
impl<T> IntoSql for T
Source§fn into_sql<T>(self) -> Self::Expression
fn into_sql<T>(self) -> Self::Expression
self to an expression for Diesel’s query builder. Read moreSource§fn as_sql<'a, T>(&'a self) -> <&'a Self as AsExpression<T>>::Expression
fn as_sql<'a, T>(&'a self) -> <&'a Self as AsExpression<T>>::Expression
&self to an expression for Diesel’s query builder. Read moreimpl<T> MaybeSend for T
impl<T> MaybeSendSync for T
impl<T> Spawnable for Twhere
T: Send + 'static,
Source§impl<T> ToCompactString for Twhere
T: Display,
impl<T> ToCompactString for Twhere
T: Display,
Source§fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
ToCompactString::to_compact_string() Read moreSource§fn to_compact_string(&self) -> CompactString
fn to_compact_string(&self) -> CompactString
CompactString. Read more