pub struct Outcome { /* private fields */ }
Expand description

The result of a search, containing all matching attributes.

Implementations§

source§

impl Outcome

Initialization

source

pub fn initialize(&mut self, collection: &MetadataCollection)

Initialize this instance to collect outcomes for all names in collection, which represents all possible attributes or macros we may visit, and reset it unconditionally.

This must be called after each time collection changes.

source

pub fn initialize_with_selection<'a>( &mut self, collection: &MetadataCollection, attribute_names: impl IntoIterator<Item = impl Into<KStringRef<'a>>> )

Like initialize(), but limits the set of attributes to look for and fill in to attribute_names. Users of this instance should prefer to limit their search as this would allow it to finish earlier.

Note that attribute_names aren’t validated to be valid names here, as invalid names definitely will always be unspecified.

source

pub fn reset(&mut self)

Prepare for a new search over the known set of attributes by resetting our state.

source§

impl Outcome

Access

source

pub fn iter(&self) -> impl Iterator<Item = Match<'_>>

Return an iterator over all filled attributes we were initialized with.

Note

If initialize_with_selection was used, use iter_selected() instead.

Deviation

It’s possible that the order in which the attribute are returned (if not limited to a set of attributes) isn’t exactly the same as what git provides. Ours is in order of declaration, whereas git seems to list macros first somehow. Since the values are the same, this shouldn’t be an issue.

source

pub fn iter_selected(&self) -> impl Iterator<Item = Match<'_>>

Iterate over all matches of the attribute selection in their original order.

This only yields values if this instance was initialized with Outcome::initialize_with_selection().

source

pub fn match_by_id(&self, id: AttributeId) -> Option<Match<'_>>

Obtain a match by the order of its attribute, if the order exists in our initialized attribute list and there was a match.

source

pub fn is_done(&self) -> bool

Return true if there is nothing more to be done as all attributes were filled.

Trait Implementations§

source§

impl Default for Outcome

source§

fn default() -> Outcome

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

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere 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 Twhere 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 Twhere U: Into<T>,

§

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 Twhere U: TryFrom<T>,

§

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.