pub enum VcGroupCreationJoinError<StorageError> {
LibraryError(LibraryError),
MissingRatchetTree,
PublicGroupError(CreationFromExternalError<StorageError>),
NotASingleLeafTree,
MissingDerivationInfo,
EpochIdMismatch,
CreatorLeafNotKeyPackageSourced,
LeafKeyMismatch,
ConfirmationTagMismatch,
VirtualClientsError(VirtualClientsError),
StorageError(StorageError),
}virtual-clients-draft and (32-bit or 64-bit) only.Expand description
Error bootstrapping a virtual client’s sibling emulator into a higher-level
group the virtual client created, by processing the creator’s initial group
creation material (MlsGroup::vc_join_at_creation).
Variants§
LibraryError(LibraryError)
See LibraryError for more details.
MissingRatchetTree
No ratchet tree available to build the created group’s public tree.
PublicGroupError(CreationFromExternalError<StorageError>)
The created group’s public tree is invalid. See
CreationFromExternalError.
NotASingleLeafTree
The ratchet tree does not consist of exactly the creator’s leaf.
MissingDerivationInfo
The creator leaf carries no virtual-clients derivation info.
EpochIdMismatch
The derivation info references a different emulation epoch than the one supplied.
CreatorLeafNotKeyPackageSourced
The creator leaf is not key_package-sourced, so it is not a virtual
client’s group-creation leaf.
LeafKeyMismatch
The leaf key material derived from the operation secret does not match the creator leaf, so this is not a genuine sibling-created group.
ConfirmationTagMismatch
The GroupInfo could not be verified against the reconstructed epoch state, so the reconstruction did not reproduce the creator’s secrets.
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 VcGroupCreationJoinError<StorageError>
impl<StorageError: Debug> Debug for VcGroupCreationJoinError<StorageError>
Source§impl<StorageError> Display for VcGroupCreationJoinError<StorageError>where
CreationFromExternalError<StorageError>: Display,
impl<StorageError> Display for VcGroupCreationJoinError<StorageError>where
CreationFromExternalError<StorageError>: Display,
Source§impl<StorageError> Error for VcGroupCreationJoinError<StorageError>
impl<StorageError> Error for VcGroupCreationJoinError<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<StorageError> From<CreationFromExternalError<StorageError>> for VcGroupCreationJoinError<StorageError>
impl<StorageError> From<CreationFromExternalError<StorageError>> for VcGroupCreationJoinError<StorageError>
Source§fn from(source: CreationFromExternalError<StorageError>) -> Self
fn from(source: CreationFromExternalError<StorageError>) -> Self
Source§impl<StorageError> From<LibraryError> for VcGroupCreationJoinError<StorageError>
impl<StorageError> From<LibraryError> for VcGroupCreationJoinError<StorageError>
Source§fn from(source: LibraryError) -> Self
fn from(source: LibraryError) -> Self
Source§impl<StorageError> From<VirtualClientsError> for VcGroupCreationJoinError<StorageError>
impl<StorageError> From<VirtualClientsError> for VcGroupCreationJoinError<StorageError>
Source§fn from(source: VirtualClientsError) -> Self
fn from(source: VirtualClientsError) -> Self
Auto Trait Implementations§
impl<StorageError> Freeze for VcGroupCreationJoinError<StorageError>where
StorageError: Freeze,
impl<StorageError> RefUnwindSafe for VcGroupCreationJoinError<StorageError>where
StorageError: RefUnwindSafe,
impl<StorageError> Send for VcGroupCreationJoinError<StorageError>where
StorageError: Send,
impl<StorageError> Sync for VcGroupCreationJoinError<StorageError>where
StorageError: Sync,
impl<StorageError> Unpin for VcGroupCreationJoinError<StorageError>where
StorageError: Unpin,
impl<StorageError> UnsafeUnpin for VcGroupCreationJoinError<StorageError>where
StorageError: UnsafeUnpin,
impl<StorageError> UnwindSafe for VcGroupCreationJoinError<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