pub enum StorageError {
Show 18 variants
PreTransitionDatabase,
OldStreamDatabase,
Stream(StreamStorageError),
DieselConnect(ConnectionError),
DieselResult(Error),
MigrationError(BoxDynError),
NotFound(NotFound),
Duplicate(DuplicateItem),
OpenMlsStorage(SqlKeyStoreError),
DbDeserialize,
DbSerialize,
Builder(UninitializedFieldError),
Platform(PlatformStorageError),
Prost(DecodeError),
Conversion(ConversionError),
Connection(ConnectionError),
InvalidHmacLength,
GroupIntent(GroupIntentError),
}Variants§
PreTransitionDatabase
The database was created before the backend transition. Not retryable.
OldStreamDatabase
The database uses the previous self-hosted stream format.
Stream(StreamStorageError)
Durable stream storage rejected an operation or reached a capacity limit.
DieselConnect(ConnectionError)
Diesel connection error.
Failed to connect to SQLite. Retryable.
DieselResult(Error)
Diesel result error.
Database query returned an error. May be retryable.
MigrationError(BoxDynError)
Migration error.
Database migration failed. Not retryable.
NotFound(NotFound)
Not found.
Requested record does not exist. Not retryable.
Duplicate(DuplicateItem)
Duplicate item.
Attempted to insert a duplicate record. Not retryable.
OpenMlsStorage(SqlKeyStoreError)
OpenMLS storage error.
OpenMLS key store operation failed. Not retryable.
DbDeserialize
DB deserialization failed.
Failed to deserialize data from database. Not retryable.
DbSerialize
DB serialization failed.
Failed to serialize data for database. Not retryable.
Builder(UninitializedFieldError)
Builder error.
Required fields missing from stored type. Not retryable.
Platform(PlatformStorageError)
Platform storage error.
Platform-specific storage error. May be retryable.
Prost(DecodeError)
Protobuf decode error.
Failed to decode protobuf from database. Not retryable.
Conversion(ConversionError)
Conversion error.
Proto conversion failed. Not retryable.
Connection(ConnectionError)
Connection error.
Database connection error. Retryable.
InvalidHmacLength
Invalid HMAC length.
HMAC key must be 42 bytes. Not retryable.
GroupIntent(GroupIntentError)
Group intent error.
Group intent processing failed. May be retryable.
Implementations§
Source§impl StorageError
impl StorageError
pub fn db_needs_connection(&self) -> bool
Trait Implementations§
Source§impl Debug for StorageError
impl Debug for StorageError
Source§impl Display for StorageError
impl Display for StorageError
Source§impl Error for StorageError
impl Error for StorageError
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 ErrorCode for StorageError
impl ErrorCode for StorageError
Source§fn error_code(&self) -> &'static str
fn error_code(&self) -> &'static str
Source§impl From<Box<dyn Error + Send + Sync>> for StorageError
impl From<Box<dyn Error + Send + Sync>> for StorageError
Source§fn from(source: BoxDynError) -> Self
fn from(source: BoxDynError) -> Self
Source§impl From<ConnectionError> for StorageError
impl From<ConnectionError> for StorageError
Source§impl From<ConnectionError> for StorageError
impl From<ConnectionError> for StorageError
Source§fn from(source: ConnectionError) -> Self
fn from(source: ConnectionError) -> Self
Source§impl From<ConversionError> for StorageError
impl From<ConversionError> for StorageError
Source§fn from(source: ConversionError) -> Self
fn from(source: ConversionError) -> Self
Source§impl From<DecodeError> for StorageError
impl From<DecodeError> for StorageError
Source§fn from(source: DecodeError) -> Self
fn from(source: DecodeError) -> Self
Source§impl From<Error> for StorageError
impl From<Error> for StorageError
Source§impl From<GroupIntentError> for StorageError
impl From<GroupIntentError> for StorageError
Source§fn from(source: GroupIntentError) -> Self
fn from(source: GroupIntentError) -> Self
Source§impl From<Infallible> for StorageError
impl From<Infallible> for StorageError
Source§fn from(_: Infallible) -> StorageError
fn from(_: Infallible) -> StorageError
Source§impl From<NotFound> for StorageError
impl From<NotFound> for StorageError
Source§impl From<PlatformStorageError> for StorageError
impl From<PlatformStorageError> for StorageError
Source§fn from(source: PlatformStorageError) -> Self
fn from(source: PlatformStorageError) -> Self
Source§impl From<SqlKeyStoreError> for StorageError
impl From<SqlKeyStoreError> for StorageError
Source§fn from(source: SqlKeyStoreError) -> Self
fn from(source: SqlKeyStoreError) -> Self
Source§impl From<StreamStorageError> for StorageError
impl From<StreamStorageError> for StorageError
Source§fn from(source: StreamStorageError) -> Self
fn from(source: StreamStorageError) -> Self
Source§impl From<UninitializedFieldError> for StorageError
impl From<UninitializedFieldError> for StorageError
Source§impl RetryableError for StorageError
impl RetryableError for StorageError
fn is_retryable(&self) -> bool
Auto Trait Implementations§
impl Freeze for StorageError
impl !RefUnwindSafe for StorageError
impl Send for StorageError
impl Sync for StorageError
impl Unpin for StorageError
impl UnsafeUnpin for StorageError
impl !UnwindSafe for StorageError
Blanket Implementations§
§impl<T> AggregateExpressionMethods for T
impl<T> AggregateExpressionMethods for T
§fn aggregate_distinct(self) -> Self::Outputwhere
Self: DistinctDsl,
fn aggregate_distinct(self) -> Self::Outputwhere
Self: DistinctDsl,
DISTINCT modifier for aggregate functions Read more§fn aggregate_all(self) -> Self::Outputwhere
Self: AllDsl,
fn aggregate_all(self) -> Self::Outputwhere
Self: AllDsl,
ALL modifier for aggregate functions Read more§fn aggregate_filter<P>(self, f: P) -> Self::Outputwhere
P: AsExpression<Bool>,
Self: FilterDsl<<P as AsExpression<Bool>>::Expression>,
fn aggregate_filter<P>(self, f: P) -> Self::Outputwhere
P: AsExpression<Bool>,
Self: FilterDsl<<P as AsExpression<Bool>>::Expression>,
§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
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§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.§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.§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.§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.§impl<T> DowncastSend for T
impl<T> DowncastSend for T
§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<T> IntoSql for T
impl<T> IntoSql for T
§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].