Skip to main content

PromisorHandshake

Struct PromisorHandshake 

Source
pub struct PromisorHandshake {
    pub decision: PromisorDecision,
    pub stored: Vec<StoredPromisorField>,
    pub resolved_filter: Option<ObjectFilterSpec>,
    pub warnings: Vec<PromisorConfigWarning>,
}
Expand description

What the promisor-remote exchange decided for one fetch.

Built by the fetch driver when the server advertises promisor remotes and returned in FetchOutcome::promisor.

Fields§

§decision: PromisorDecision

The verdict on every advertised remote.

§stored: Vec<StoredPromisorField>

Fields written into local config (promisor.storeFields).

§resolved_filter: Option<ObjectFilterSpec>

The filter chosen from the accepted remotes, when the fetch asked for one automatically (FetchOptions::auto_filter).

§warnings: Vec<PromisorConfigWarning>

Config values that were ignored, advertised values that were not stored, and advertised filters too complex to use as the automatic filter.

Implementations§

Source§

impl PromisorHandshake

Source

pub fn evaluate( cfg: &ConfigSet, advertisement: &PromisorAdvertisement, partial_fetch: bool, auto_filter: bool, ) -> Self

Decide the client side of the exchange.

Reads the client’s policy from cfg, decides against its configured promisor remotes, and declines everything with PromisorRejection::NotPartialFetch unless partial_fetch: a client that is not doing a partial fetch needs every object from this server. With auto_filter, also picks the filter for the fetch from the accepted remotes (PromisorDecision::combined_filter). Writes nothing; see Self::store_fields.

§Parameters
  • cfg: the client’s merged config.
  • advertisement: what the server advertised.
  • partial_fetch: whether the fetch is filtered or is from a promisor remote.
  • auto_filter: whether to resolve the filter from the accepted remotes.
Source

pub fn store_fields(&mut self, git_dir: &Path, cfg: &ConfigSet) -> Result<()>

Write promisor.storeFields values of the accepted remotes into git_dir’s config (see store_advertised_fields), recording what was written in Self::stored.

§Parameters
  • git_dir: the repository being fetched into.
  • cfg: the client’s merged config, loaded before the fetch.
§Errors

Returns Error when the local config file cannot be read or written.

Trait Implementations§

Source§

impl Clone for PromisorHandshake

Source§

fn clone(&self) -> Self

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 Debug for PromisorHandshake

Source§

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

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

impl Default for PromisorHandshake

Source§

fn default() -> Self

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

impl Eq for PromisorHandshake

Source§

impl PartialEq for PromisorHandshake

Source§

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

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<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
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> 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.