Skip to main content

CircleTransitionDraft

Struct CircleTransitionDraft 

Source
pub struct CircleTransitionDraft {
    pub circle_id: CircleId,
    pub epoch_id: CircleEpochId,
    pub keyring: String,
    pub roster: CircleMaterializedRoster,
    pub policy: CircleTransitionDraftPolicy,
    pub metadata: CircleMetadata,
    pub close_intent: Option<CircleEpochCloseIntent>,
    pub close_finalization: Option<CircleEpochCloseFinalizationDraft>,
    pub close_cancellation: Option<CircleEpochCloseCancellationDraft>,
    pub access: Vec<PreparedCircleAccess>,
    pub control: PreparedCircleControl,
}

Fields§

§circle_id: CircleId§epoch_id: CircleEpochId§keyring: String§roster: CircleMaterializedRoster§policy: CircleTransitionDraftPolicy§metadata: CircleMetadata§close_intent: Option<CircleEpochCloseIntent>§close_finalization: Option<CircleEpochCloseFinalizationDraft>§close_cancellation: Option<CircleEpochCloseCancellationDraft>§access: Vec<PreparedCircleAccess>§control: PreparedCircleControl

Implementations§

Source§

impl CircleTransitionDraft

Source

pub fn close_epoch( candidate_family: CandidateFamilyId, device_id: &str, store_membership: StoreMembershipStateRef, membership_authority: MembershipGrantCreationAuthority, store_members: Vec<(String, MemberRole)>, current_control: &PreparedCircleControl, current_roster: &CircleMaterializedRoster, current_metadata: &CircleMetadata, keyring: &str, close_id: CircleEpochCloseId, close_intent: CircleEpochCloseIntent, intent: CircleEpochCloseIntentRef, frozen_device_state: StoreDeviceStateRef, participants: Vec<CircleEpochCloseParticipant>, provisional_frontier: CommitFrontier, outcome_slot: ObjectSlot, ids: &dyn IdProvider, signer: &dyn IdentityKeyAuthority, ) -> Result<Self, CircleTransitionError>

Source

pub fn finalize_epoch_close( candidate_family: CandidateFamilyId, device_id: &str, author_registration: &StoreDeviceRegistrationRef, metadata_stamp: &str, store_membership: StoreMembershipStateRef, membership_authority: MembershipGrantCreationAuthority, store_members: Vec<(String, MemberRole)>, close_control: &PreparedCircleControl, current_roster: &CircleMaterializedRoster, current_roster_chain: CircleRosterChain, current_metadata: &CircleMetadata, keyring: &str, intent: CircleEpochCloseIntent, responses: Vec<CircleEpochCloseSettlement>, ids: &dyn IdProvider, signer: &dyn IdentityKeyAuthority, ) -> Result<Self, CircleTransitionError>

Source

pub fn reopen_epoch( candidate_family: CandidateFamilyId, device_id: &str, store_membership: StoreMembershipStateRef, membership_authority: MembershipGrantCreationAuthority, store_members: Vec<(String, MemberRole)>, close_control: &PreparedCircleControl, current_roster: &CircleMaterializedRoster, current_metadata: &CircleMetadata, keyring: &str, ids: &dyn IdProvider, signer: &dyn IdentityKeyAuthority, ) -> Result<Self, CircleTransitionError>

Reopen a frozen epoch by cancelling its close. The successor restores the frozen epoch’s protocol identity — same epoch, key generation, roster and metadata frontiers, and origin — re-issuing only the control-bound access material to the reopening control.

Source§

impl CircleTransitionDraft

Source

pub fn founder( store_root_hash: ObjectHash, candidate_family: CandidateFamilyId, device_id: &str, name: &str, metadata_stamp: &str, store_membership: StoreMembershipStateRef, membership_authority: MembershipGrantCreationAuthority, store_members: Vec<(String, MemberRole)>, ids: &dyn IdProvider, signer: &dyn IdentityKeyAuthority, ) -> Result<Self, CircleTransitionError>

Source

pub fn add_member( candidate_family: CandidateFamilyId, device_id: &str, store_membership: StoreMembershipStateRef, membership_authority: MembershipGrantCreationAuthority, store_members: Vec<(String, MemberRole)>, current_control: &PreparedCircleControl, current_roster: &CircleMaterializedRoster, current_roster_chain: CircleRosterChain, current_metadata: &CircleMetadata, keyring: &str, roster_stream: AuthorStreamId, member_pubkey: String, role: CircleRole, bootstrap: CircleBootstrapRef, ids: &dyn IdProvider, signer: &dyn IdentityKeyAuthority, ) -> Result<Self, CircleTransitionError>

Source

pub fn rename( candidate_family: CandidateFamilyId, device_id: &str, name: &str, metadata_stamp: &str, store_membership: StoreMembershipStateRef, membership_authority: MembershipGrantCreationAuthority, store_members: Vec<(String, MemberRole)>, current_control: &PreparedCircleControl, current_roster: &CircleMaterializedRoster, current_metadata: &CircleMetadata, keyring: &str, ids: &dyn IdProvider, signer: &dyn IdentityKeyAuthority, ) -> Result<Self, CircleTransitionError>

Source

pub fn resolve( candidate_family: CandidateFamilyId, device_id: &str, store_membership: StoreMembershipStateRef, membership_authority: MembershipGrantCreationAuthority, store_members: Vec<(String, MemberRole)>, chosen_control: &PreparedCircleControl, chosen_roster: &CircleMaterializedRoster, chosen_metadata: &CircleMetadata, keyring: &str, losing_branches: Vec<ResolvedConflictBranch>, ids: &dyn IdProvider, signer: &dyn IdentityKeyAuthority, ) -> Result<Self, CircleTransitionError>

Build a successor of the chosen conflicting branch that causally covers every branch, collapsing a retained ControlConflict to a single resolved control. The successor inherits the chosen branch’s epoch, key generation, and roster contents verbatim — it changes no membership, keys, or deletion intent. It merges the control, metadata, and roster head frontiers across every branch (the union of covered heads), so a device that authored a losing branch continues its own author streams instead of re-allocating their head slots. The name is not inherited from the chosen branch but re-derived as the deterministic metadata selection over the merged frontier: the metadata layer resolves its own conflict — the canonical maximum across every covered head — independent of which control branch the Owner chose. losing_branches are the retained branches other than chosen; preparation adds the chosen branch head, so the resolved control’s causal dependencies and predecessor together name every branch.

Source

pub fn delete( device_id: &str, store_membership: StoreMembershipStateRef, membership_authority: MembershipGrantCreationAuthority, store_members: Vec<(String, MemberRole)>, current_control: &PreparedCircleControl, current_roster: &CircleMaterializedRoster, current_metadata: &CircleMetadata, keyring: &str, ids: &dyn IdProvider, signer: &dyn IdentityKeyAuthority, ) -> Result<Self, CircleTransitionError>

Build the terminal deletion: a successor of the current control whose state is Deleted, freezing the epoch spine for historical verification and reclamation. It publishes no roster successor, metadata successor, access material, or bootstraps — its control inherits the predecessor’s access root.

Trait Implementations§

Source§

impl Clone for CircleTransitionDraft

Source§

fn clone(&self) -> CircleTransitionDraft

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for CircleTransitionDraft

Source§

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

Formats the value using the given formatter. Read more

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. 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,