Skip to main content

BootstrapError

Enum BootstrapError 

Source
pub enum BootstrapError {
Show 24 variants CloudHome(CloudHomeError), Encryption(EncryptionError), Invite(Box<InviteError>), Snapshot(SnapshotError), Pull(PullError), StorePull(StorePullError), StoreRegistration(StoreRegistrationError), DeviceJoin(DeviceJoinError), Storage(StorageError), Config(ConfigError), Key(KeyError), Io(Error), InvalidCode(String), StoreExists(String), TornBootstrapCleanup { store_id: String, failures: String, }, Provider(String), Membership(String), WritePolicyMismatch { expected: WritePolicy, actual: WritePolicy, }, SerialCoordinationUnavailable { provider: CloudProvider, }, ExactSlotsUnavailable { provider: CloudProvider, }, Database(String), InvalidSigningKey(String), Cancelled, Cleanup { cleanup: String, cause: Box<BootstrapError>, },
}
Expand description

Why joining or restoring a store failed. Both are the same operation — bootstrap a store from the cloud — differing only in their entry data (an invite that wraps the store key vs a restore code that carries the bucket credentials), so they share one error shape rather than two that duplicate most of their variants and then have to map between each other.

Variants§

§

CloudHome(CloudHomeError)

§

Encryption(EncryptionError)

§

Invite(Box<InviteError>)

§

Snapshot(SnapshotError)

§

Pull(PullError)

§

StorePull(StorePullError)

§

StoreRegistration(StoreRegistrationError)

§

DeviceJoin(DeviceJoinError)

§

Storage(StorageError)

§

Config(ConfigError)

§

Key(KeyError)

§

Io(Error)

§

InvalidCode(String)

§

StoreExists(String)

§

TornBootstrapCleanup

A hard crash left a store directory with no saved config, and clearing that torn-bootstrap residue before retrying failed — so the retry can’t proceed over the leftover directory or keyring entries.

Fields

§store_id: String
§failures: String
§

Provider(String)

§

Membership(String)

§

WritePolicyMismatch

Fields

§expected: WritePolicy
§

SerialCoordinationUnavailable

Fields

§provider: CloudProvider
§

ExactSlotsUnavailable

Fields

§provider: CloudProvider
§

Database(String)

§

InvalidSigningKey(String)

§

Cancelled

The caller’s cancel signal fired at a phase boundary, so the join or restore stopped before saving the store. This returns through the same failure-cleanup path a real error takes — removing the partly-created store directory and any per-store keyring entries written so far — so a cancelled bootstrap leaves no residue in either place.

§

Cleanup

Bootstrap failed AND cleaning up what it had durably written also failed. Both are carried: cause is the original bootstrap failure that triggered the cleanup, cleanup is why the cleanup itself failed — the cause is preserved as a value, not flattened into a string.

Fields

§cleanup: String

Trait Implementations§

Source§

impl Debug for BootstrapError

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for BootstrapError

Source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Error for BootstrapError

Source§

fn source(&self) -> Option<&(dyn Error + 'static)>

Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · Source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
Source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more
Source§

impl From<CloudHomeError> for BootstrapError

Source§

fn from(source: CloudHomeError) -> Self

Converts to this type from the input type.
Source§

impl From<ConfigError> for BootstrapError

Source§

fn from(source: ConfigError) -> Self

Converts to this type from the input type.
Source§

impl From<DeviceJoinError> for BootstrapError

Source§

fn from(source: DeviceJoinError) -> Self

Converts to this type from the input type.
Source§

impl From<EncryptionError> for BootstrapError

Source§

fn from(source: EncryptionError) -> Self

Converts to this type from the input type.
Source§

impl From<Error> for BootstrapError

Source§

fn from(source: Error) -> Self

Converts to this type from the input type.
Source§

impl From<InviteError> for BootstrapError

Source§

fn from(error: InviteError) -> Self

Converts to this type from the input type.
Source§

impl From<KeyError> for BootstrapError

Source§

fn from(source: KeyError) -> Self

Converts to this type from the input type.
Source§

impl From<PullError> for BootstrapError

Source§

fn from(source: PullError) -> Self

Converts to this type from the input type.
Source§

impl From<SnapshotError> for BootstrapError

Source§

fn from(source: SnapshotError) -> Self

Converts to this type from the input type.
Source§

impl From<StorageError> for BootstrapError

Source§

fn from(source: StorageError) -> Self

Converts to this type from the input type.
Source§

impl From<StorePullError> for BootstrapError

Source§

fn from(source: StorePullError) -> Self

Converts to this type from the input type.
Source§

impl From<StoreRegistrationError> for BootstrapError

Source§

fn from(source: StoreRegistrationError) -> Self

Converts to this type from the input type.

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
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> 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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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<Unshared, Shared> IntoShared<Shared> for Unshared
where Shared: FromUnshared<Unshared>,

§

fn into_shared(self) -> Shared

Creates a shared type from an unshared type.
§

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

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. 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
§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,