Skip to main content

Policy

Struct Policy 

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

Resolved durability policy for repository writes.

Combines the component selection from core.fsync, the barrier choice from core.fsyncMethod, and the GIT_TEST_FSYNC gate, in the shape of upstream’s fsync_components + fsync_method + use_fsync globals.

Implementations§

Source§

impl Policy

Source

pub fn from_values( core_fsync: Option<&str>, core_fsync_method: Option<&str>, ) -> Self

Resolve from raw core.fsync / core.fsyncMethod values. Absent values leave the corresponding platform default in place.

Source

pub fn resolve(config: &impl FsyncConfigSource) -> Self

Resolve from parsed configuration (e.g. GitConfig). Configuration lookup failures should fall back to Policy::default, which matches reading a repository without core.fsync keys.

Source

pub fn overridden( self, core_fsync: Option<&str>, core_fsync_method: Option<&str>, ) -> Self

Apply command-line-style overrides (git -c core.fsync=...): Some values replace the corresponding setting, None keeps it, and the test switch is re-read afterwards so callers holding a long-lived policy observe current environment state.

Source

pub const fn components(&self) -> FsyncComponents

Component set after core.fsync parsing.

Source

pub const fn method(&self) -> FsyncMethod

Effective barrier method.

Source

pub const fn syncs(&self, component: FsyncComponents) -> bool

Whether writes to component take a barrier under this policy (upstream fsync_component()’s gating, including the test switch).

Source

pub const fn method_if_enabled( &self, component: FsyncComponents, ) -> Option<FsyncMethod>

The barrier method to apply when writing component files, or None when no barrier applies. This is the shape threaded through locked write paths that sync before rename.

Source

pub fn apply(&self, file: &File, component: FsyncComponents) -> Result<()>

Sync an open file handle when component is covered by this policy; otherwise return without touching the handle. Errors surface verbatim.

Trait Implementations§

Source§

impl Clone for Policy

Source§

fn clone(&self) -> Policy

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Copy for Policy

Source§

impl Debug for Policy

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Default for Policy

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Eq for Policy

Source§

impl PartialEq for Policy

Source§

fn eq(&self, other: &Policy) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for Policy

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.

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