Skip to main content

ArtifactBuildTransaction

Struct ArtifactBuildTransaction 

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

Owned miss transaction holding the recipe and content-key process locks.

Implementations§

Source§

impl ArtifactBuildTransaction

Source

pub fn staging_directory(&self) -> &Path

Transaction-owned directory in which the caller may run its build.

Commit accepts only the cache-created outputs child at this root. Callers must remove or relocate logs and other temporary root children.

Source

pub fn output_path(&self, name: &str) -> Result<PathBuf, ArtifactCacheError>

Checked staging destination for one declared logical output.

§Errors

Returns ArtifactCacheError::UnknownOutput for an undeclared output name.

Source

pub fn import_output( &self, name: &str, source: &Path, ) -> Result<(), ArtifactCacheError>

Copy a fixed external output into its transaction-owned staging path.

§Errors

Returns an unknown-output or atomic source-copy/publication error.

Source

pub fn commit(self) -> Result<ArtifactCacheOutcome, ArtifactCacheError>

Validate the exact staging schema and atomically publish the complete output set.

§Errors

Returns staging-schema, output verification, input-change, lock or publication errors. Failed staging cleanup preserves both the transaction and cleanup errors.

Source

pub fn abort(self) -> Result<(), ArtifactCacheError>

Abandon the transaction and synchronously remove its staging directory.

§Errors

Returns the filesystem error if removing the owned staging directory fails.

Trait Implementations§

Source§

impl Drop for ArtifactBuildTransaction

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. 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 = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

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.