gix_lock

Struct Marker

source
pub struct Marker { /* private fields */ }
Expand description

Locks a resource to allow related resources to be updated using files.

As opposed to the File type this one won’t keep the tempfile open for writing and thus consumes no system resources, nor can it be persisted.

Implementations§

source§

impl Marker

source

pub fn acquire_to_hold_resource( at_path: impl AsRef<Path>, mode: Fail, boundary_directory: Option<PathBuf>, ) -> Result<Marker, Error>

Like acquire_to_update_resource() but without the possibility to make changes and commit them.

If boundary_directory is given, non-existing directories will be created automatically and removed in the case of a rollback.

Note that permissions will be set to 0o666, which usually results in 0o644 after passing a default umask, on Unix systems.

§Warning of potential resource leak

Please note that the underlying file will remain if destructors don’t run, as is the case when interrupting the application. This results in the resource being locked permanently unless the lock file is removed by other means. See the crate documentation for more information.

source

pub fn acquire_to_hold_resource_with_permissions( at_path: impl AsRef<Path>, mode: Fail, boundary_directory: Option<PathBuf>, make_permissions: impl Fn() -> Permissions, ) -> Result<Marker, Error>

Like acquire_to_hold_resource(), but allows to set filesystem permissions using make_permissions.

source§

impl Marker

source

pub fn commit(self) -> Result<PathBuf, Error<Self>>

Commit the changes written to the previously open file and overwrite the original file atomically, returning the resource path on success.

This fails for markers which weren’t created with File::close()

source§

impl Marker

source

pub fn lock_path(&self) -> &Path

Return the path at which the lock file resides

source

pub fn resource_path(&self) -> PathBuf

Return the path at which the locked resource resides

Trait Implementations§

source§

impl Debug for Marker

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl Freeze for Marker

§

impl RefUnwindSafe for Marker

§

impl Send for Marker

§

impl Sync for Marker

§

impl Unpin for Marker

§

impl UnwindSafe for Marker

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