pub enum StoreCreationError {
Directory(BootstrapDirectoryError),
Store(CovenError),
DeviceLocked {
path: PathBuf,
},
Identity(IdentityError),
Sync(SyncError),
Cleanup {
operation: Box<StoreCreationError>,
cleanup: Box<StoreCreationError>,
},
PublishedButNotSynced {
store: StoreId,
source: Box<StoreCreationError>,
},
Shutdown(Shutdown),
Bug(Bug),
}Expand description
Creating a store failed, with publication and rollback made explicit (E1).
Variants§
Directory(BootstrapDirectoryError)
Preparing, publishing or removing the hidden directory failed.
Store(CovenError)
Opening the database or custody failed.
DeviceLocked
The device is locked, and the protection class the app chose keeps the new store’s files from being made until it unlocks (api.md E1). No store was made; the app waits for the unlock and creates it again.
Identity(IdentityError)
Creating or persisting the member identity failed.
Sync(SyncError)
Closing the database or its workers failed.
Cleanup
Closing or rollback also failed; both causes remain available.
Fields
operation: Box<StoreCreationError>The original failure.
cleanup: Box<StoreCreationError>A cleanup failure.
PublishedButNotSynced
The complete store is visible and closed, but its directory sync failed.
Fields
source: Box<StoreCreationError>The directory-sync failure, retaining any close failure as Cleanup.
Shutdown(Shutdown)
Creation’s runtime is shutting down and dropped its work (E15).
Creation runs as its own task, so with ShutdownOutcome::Unknown it
may have stopped anywhere, before or after publishing the store;
listing the stores shows which. A step on the blocking pool that the
runtime dropped is NotRun.
Bug(Bug)
Creation panicked: a bug, which the caller reports (E15). As with
Shutdown, listing the stores shows whether it published the store.
Trait Implementations§
Source§impl CarriesBug for StoreCreationError
impl CarriesBug for StoreCreationError
Source§impl Debug for StoreCreationError
impl Debug for StoreCreationError
Source§impl Display for StoreCreationError
impl Display for StoreCreationError
Source§impl Error for StoreCreationError
impl Error for StoreCreationError
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
Source§impl From<BootstrapDirectoryError> for StoreCreationError
impl From<BootstrapDirectoryError> for StoreCreationError
Source§fn from(error: BootstrapDirectoryError) -> Self
fn from(error: BootstrapDirectoryError) -> Self
Source§impl From<Bug> for StoreCreationError
impl From<Bug> for StoreCreationError
Source§impl From<CovenError> for StoreCreationError
impl From<CovenError> for StoreCreationError
Source§fn from(error: CovenError) -> Self
fn from(error: CovenError) -> Self
Source§impl From<IdentityError> for StoreCreationError
impl From<IdentityError> for StoreCreationError
Source§fn from(error: IdentityError) -> Self
fn from(error: IdentityError) -> Self
Source§impl From<OpenError> for StoreCreationError
Opening the database fails as the store’s open does.
impl From<OpenError> for StoreCreationError
Opening the database fails as the store’s open does.
Source§impl From<Shutdown> for StoreCreationError
impl From<Shutdown> for StoreCreationError
Source§impl From<SyncError> for StoreCreationError
impl From<SyncError> for StoreCreationError
Source§impl From<TaskFailed> for StoreCreationError
impl From<TaskFailed> for StoreCreationError
Source§fn from(failed: TaskFailed) -> Self
fn from(failed: TaskFailed) -> Self
Auto Trait Implementations§
impl Freeze for StoreCreationError
impl !RefUnwindSafe for StoreCreationError
impl Send for StoreCreationError
impl Sync for StoreCreationError
impl Unpin for StoreCreationError
impl UnsafeUnpin for StoreCreationError
impl !UnwindSafe for StoreCreationError
Blanket Implementations§
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> 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