gix_refspec

Struct MatchGroup

Source
pub struct MatchGroup<'a> {
    pub specs: Vec<RefSpecRef<'a>>,
}
Expand description

A match group is able to match a list of ref specs in order while handling negation, conflicts and one to many mappings.

Fields§

§specs: Vec<RefSpecRef<'a>>

The specs that take part in item matching.

Implementations§

Source§

impl<'a> MatchGroup<'a>

Initialization

Source

pub fn from_fetch_specs(specs: impl IntoIterator<Item = RefSpecRef<'a>>) -> Self

Take all the fetch ref specs from specs get a match group ready.

Source

pub fn from_push_specs(specs: impl IntoIterator<Item = RefSpecRef<'a>>) -> Self

Take all the push ref specs from specs get a match group ready.

Source§

impl<'spec> MatchGroup<'spec>

Matching

Source

pub fn match_lhs<'item>( self, items: impl Iterator<Item = Item<'item>> + Clone, ) -> Outcome<'spec, 'item>

Match all items against all fetch specs present in this group, returning deduplicated mappings from source to destination. items are expected to be references on the remote, which will be matched and mapped to obtain their local counterparts, i.e. left side of refspecs is mapped to their right side. Note that this method is correct only for fetch-specs, even though it also works for push-specs.

Object names are never mapped and always returned as match.

Note that negative matches are not part of the return value, so they are not observable but will be used to remove mappings.

Source

pub fn match_rhs<'item>( self, items: impl Iterator<Item = Item<'item>> + Clone, ) -> Outcome<'spec, 'item>

Match all items against all fetch specs present in this group, returning deduplicated mappings from destination to source. items are expected to be tracking references in the local clone, which will be matched and reverse-mapped to obtain their remote counterparts, i.e. right side of refspecs is mapped to their left side. Note that this method is correct only for fetch-specs, even though it also works for push-specs.

Note that negative matches are not part of the return value, so they are not observable but will be used to remove mappings.

Trait Implementations§

Source§

impl<'a> Clone for MatchGroup<'a>

Source§

fn clone(&self) -> MatchGroup<'a>

Returns a copy of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl<'a> Debug for MatchGroup<'a>

Source§

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

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

impl<'a> Default for MatchGroup<'a>

Source§

fn default() -> MatchGroup<'a>

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

Auto Trait Implementations§

§

impl<'a> Freeze for MatchGroup<'a>

§

impl<'a> RefUnwindSafe for MatchGroup<'a>

§

impl<'a> Send for MatchGroup<'a>

§

impl<'a> Sync for MatchGroup<'a>

§

impl<'a> Unpin for MatchGroup<'a>

§

impl<'a> UnwindSafe for MatchGroup<'a>

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, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. 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.