pub struct SamePrincipalDeviceJoin {
pub bootstrap: ProviderReadyDeviceBootstrap,
pub activation: DeviceJoinActivation,
pub installation: Box<SamePrincipalStoreInstallation>,
}Expand description
The complete response when the Store and joining device use the same provider principal. The one activation commit both publishes the attempt bootstrap and activates the joining registration, so the joiner can install that exact history and finish without a second transport wait or catch-up.
Fields§
§bootstrap: ProviderReadyDeviceBootstrap§activation: DeviceJoinActivation§installation: Box<SamePrincipalStoreInstallation>Implementations§
Source§impl SamePrincipalDeviceJoin
impl SamePrincipalDeviceJoin
pub fn verified( bootstrap: ProviderReadyDeviceBootstrap, activation: DeviceJoinActivation, installation: SamePrincipalStoreInstallation, ) -> Result<SamePrincipalDeviceJoin, DeviceJoinExchangeError>
Sourcepub fn verify_shape(&self) -> Result<(), DeviceJoinExchangeError>
pub fn verify_shape(&self) -> Result<(), DeviceJoinExchangeError>
Check the parts of a same-provider join against each other.
What this can settle is agreement between the pieces the joining device already holds: the request it signed, the authorization the admitting device signed over it, and the snapshot authority. That the joining device was really registered is not settled here and never was — it is settled by the bootstrap closure, whose activation commit names the registration and is verified commit by commit against the Store’s own history.
Trait Implementations§
Source§impl Clone for SamePrincipalDeviceJoin
impl Clone for SamePrincipalDeviceJoin
Source§fn clone(&self) -> SamePrincipalDeviceJoin
fn clone(&self) -> SamePrincipalDeviceJoin
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SamePrincipalDeviceJoin
impl Debug for SamePrincipalDeviceJoin
Source§impl<'de> Deserialize<'de> for SamePrincipalDeviceJoin
impl<'de> Deserialize<'de> for SamePrincipalDeviceJoin
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<SamePrincipalDeviceJoin, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<SamePrincipalDeviceJoin, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for SamePrincipalDeviceJoin
impl PartialEq for SamePrincipalDeviceJoin
Source§impl Serialize for SamePrincipalDeviceJoin
impl Serialize for SamePrincipalDeviceJoin
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl Eq for SamePrincipalDeviceJoin
impl StructuralPartialEq for SamePrincipalDeviceJoin
Auto Trait Implementations§
impl Freeze for SamePrincipalDeviceJoin
impl RefUnwindSafe for SamePrincipalDeviceJoin
impl Send for SamePrincipalDeviceJoin
impl Sync for SamePrincipalDeviceJoin
impl Unpin for SamePrincipalDeviceJoin
impl UnsafeUnpin for SamePrincipalDeviceJoin
impl UnwindSafe for SamePrincipalDeviceJoin
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§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