Skip to main content

AtomicPublication

Struct AtomicPublication 

Source
pub struct AtomicPublication { /* private fields */ }
Expand description

Private hidden-sibling candidate that has not yet been published.

Implementations§

Source§

impl AtomicPublication

Source

pub fn prepare( output_path: &Path, document: &PromotionDocument, ) -> PromotionResult<Self>

Constructs and seals a candidate in a brand-new hidden sibling.

The parent and candidate are descriptor-rooted with symlink resolution disabled. Both files use O_EXCL, are fsynced, rehashed, checked for a hard-link count of one, and changed to mode 0400; the directory becomes mode 0500. Existing output or temporary names are rejected.

§Errors

Returns FailureCode::Publication for any path, identity, write, recheck, permission, or exclusivity failure.

Source

pub fn publish<F>( self, burn: DurablePromotionBurn, revalidate_all_inputs: F, ) -> PromotionResult<PublicationReceipt>
where F: FnOnce() -> PromotionResult<()>,

Revalidates the durable burn and every caller-owned immutable input, then atomically renames the sealed candidate with RENAME_NOREPLACE.

State was already appended and fsynced before this method can be called. Any failure or crash leaves the identity consumed and no success output.

§Errors

Returns the revalidation failure unchanged, or FailureCode::Publication if the candidate cannot be atomically published without overwrite.

Trait Implementations§

Source§

impl Debug for AtomicPublication

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

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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, 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.