Skip to main content

ReplyPolicy

Struct ReplyPolicy 

Source
pub struct ReplyPolicy {
    pub accept_legacy_free_text_idempotence: bool,
}
Expand description

How much a caller is willing to infer from a non-conforming peer.

The default infers nothing: an outcome is decided from the error code alone.

Fields§

§accept_legacy_free_text_idempotence: bool

DEPRECATED — opt-in compatibility only, removed in the next MAJOR.

Also treat a taskFailed whose free-text message contains already_granted: or not_granted: as WriteOutcome::IdempotentSuccess.

This is how the classification worked before 0.10.0, and it was wrong: SPEC §8.2 defines message as non-normative free text “intended for logs and operator UI”. Deciding an outcome from it means the client’s behaviour hinges on wording the emitting service may reword, translate or drop at any time — and, in the other direction, that a genuine taskFailed whose operator message happens to quote the phrase is silently reported to the caller as success.

Enable this only while a specific peer still emits the free-text form, and only after confirming there is no code-bearing alternative. The correct fix is on the emitting side: send GIT_TRUST_ALREADY_GRANTED_CODE / GIT_TRUST_NOT_GRANTED_CODE, which SPEC §8.5 provides for exactly this and the registry entries already declare.

Implementations§

Source§

impl ReplyPolicy

Source

pub fn strict() -> Self

The strict policy: the error code decides, free text decides nothing.

Source

pub fn with_legacy_free_text() -> Self

DEPRECATED: additionally accept the pre-0.10 free-text form. See Self::accept_legacy_free_text_idempotence.

Trait Implementations§

Source§

impl Clone for ReplyPolicy

Source§

fn clone(&self) -> ReplyPolicy

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 ReplyPolicy

Source§

impl Debug for ReplyPolicy

Source§

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

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

impl Default for ReplyPolicy

Source§

fn default() -> ReplyPolicy

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

impl Eq for ReplyPolicy

Source§

impl PartialEq for ReplyPolicy

Source§

fn eq(&self, other: &ReplyPolicy) -> 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 ReplyPolicy

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 = !

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.