pub enum VcExternalCommitJoinError<StorageError> {
LibraryError(LibraryError),
MissingRatchetTree,
PublicGroupError(CreationFromExternalError<StorageError>),
ProcessMessageError(ProcessMessageError<StorageError>),
StageCommitError(StageCommitError),
MergeCommitError(MergeCommitError<StorageError>),
NotAnExternalCommit,
MissingDerivationInfo,
EpochIdMismatch,
VirtualClientsError(VirtualClientsError),
StorageError(StorageError),
}virtual-clients-draft and (32-bit or 64-bit) only.Expand description
Error joining a higher-level group as a virtual client’s sibling emulator
by processing another sibling’s external commit
(MlsGroup::vc_join_via_sibling_external_commit).
Variants§
LibraryError(LibraryError)
See LibraryError for more details.
MissingRatchetTree
No ratchet tree available to build the prior-epoch public group.
PublicGroupError(CreationFromExternalError<StorageError>)
The prior-epoch public tree is invalid. See CreationFromExternalError.
ProcessMessageError(ProcessMessageError<StorageError>)
The external commit could not be parsed or verified.
StageCommitError(StageCommitError)
Staging the external commit failed.
MergeCommitError(MergeCommitError<StorageError>)
Merging the external commit failed.
NotAnExternalCommit
The message is not an external commit (Sender::NewMemberCommit with a
Commit body).
MissingDerivationInfo
The external commit’s leaf carries no virtual-clients derivation info, so a sibling cannot reconstruct the joining state from it.
EpochIdMismatch
The derivation info references a different emulation epoch than the one supplied.
VirtualClientsError(VirtualClientsError)
A virtual-clients processing error occurred.
StorageError(StorageError)
An error occurred when writing the group to storage.
Trait Implementations§
Source§impl<StorageError: Debug> Debug for VcExternalCommitJoinError<StorageError>
impl<StorageError: Debug> Debug for VcExternalCommitJoinError<StorageError>
Source§impl<StorageError> Display for VcExternalCommitJoinError<StorageError>where
CreationFromExternalError<StorageError>: Display,
ProcessMessageError<StorageError>: Display,
MergeCommitError<StorageError>: Display,
impl<StorageError> Display for VcExternalCommitJoinError<StorageError>where
CreationFromExternalError<StorageError>: Display,
ProcessMessageError<StorageError>: Display,
MergeCommitError<StorageError>: Display,
Source§impl<StorageError> Error for VcExternalCommitJoinError<StorageError>where
CreationFromExternalError<StorageError>: Error,
ProcessMessageError<StorageError>: Error,
MergeCommitError<StorageError>: Error,
Self: Debug + Display,
impl<StorageError> Error for VcExternalCommitJoinError<StorageError>where
CreationFromExternalError<StorageError>: Error,
ProcessMessageError<StorageError>: Error,
MergeCommitError<StorageError>: Error,
Self: Debug + Display,
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<StorageError> From<CreationFromExternalError<StorageError>> for VcExternalCommitJoinError<StorageError>
impl<StorageError> From<CreationFromExternalError<StorageError>> for VcExternalCommitJoinError<StorageError>
Source§fn from(source: CreationFromExternalError<StorageError>) -> Self
fn from(source: CreationFromExternalError<StorageError>) -> Self
Source§impl<StorageError> From<LibraryError> for VcExternalCommitJoinError<StorageError>
impl<StorageError> From<LibraryError> for VcExternalCommitJoinError<StorageError>
Source§fn from(source: LibraryError) -> Self
fn from(source: LibraryError) -> Self
Source§impl<StorageError> From<MergeCommitError<StorageError>> for VcExternalCommitJoinError<StorageError>
impl<StorageError> From<MergeCommitError<StorageError>> for VcExternalCommitJoinError<StorageError>
Source§fn from(source: MergeCommitError<StorageError>) -> Self
fn from(source: MergeCommitError<StorageError>) -> Self
Source§impl<StorageError> From<ProcessMessageError<StorageError>> for VcExternalCommitJoinError<StorageError>
impl<StorageError> From<ProcessMessageError<StorageError>> for VcExternalCommitJoinError<StorageError>
Source§fn from(source: ProcessMessageError<StorageError>) -> Self
fn from(source: ProcessMessageError<StorageError>) -> Self
Source§impl<StorageError> From<StageCommitError> for VcExternalCommitJoinError<StorageError>
impl<StorageError> From<StageCommitError> for VcExternalCommitJoinError<StorageError>
Source§fn from(source: StageCommitError) -> Self
fn from(source: StageCommitError) -> Self
Source§impl<StorageError> From<VirtualClientsError> for VcExternalCommitJoinError<StorageError>
impl<StorageError> From<VirtualClientsError> for VcExternalCommitJoinError<StorageError>
Source§fn from(source: VirtualClientsError) -> Self
fn from(source: VirtualClientsError) -> Self
Auto Trait Implementations§
impl<StorageError> Freeze for VcExternalCommitJoinError<StorageError>where
StorageError: Freeze,
impl<StorageError> RefUnwindSafe for VcExternalCommitJoinError<StorageError>where
StorageError: RefUnwindSafe,
impl<StorageError> Send for VcExternalCommitJoinError<StorageError>where
StorageError: Send,
impl<StorageError> Sync for VcExternalCommitJoinError<StorageError>where
StorageError: Sync,
impl<StorageError> Unpin for VcExternalCommitJoinError<StorageError>where
StorageError: Unpin,
impl<StorageError> UnsafeUnpin for VcExternalCommitJoinError<StorageError>where
StorageError: UnsafeUnpin,
impl<StorageError> UnwindSafe for VcExternalCommitJoinError<StorageError>where
StorageError: UnwindSafe,
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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
§impl<T> Classify for T
impl<T> Classify for T
type Classified = T
fn classify(self) -> T
§impl<T> Declassify for T
impl<T> Declassify for T
type Declassified = T
fn declassify(self) -> T
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