Arbiter
Dependency manager library that supports decentralization
Public Member Functions | List of all members
Arbiter::Requirement::Any Class Referencefinal

A requirement satisfied by any version. More...

Collaboration diagram for Arbiter::Requirement::Any:
[legend]

Public Member Functions

std::unique_ptr< Arbiter::Baseclone () const override
 
std::unique_ptr< ArbiterRequirementcloneRequirement () const
 
std::ostream & describe (std::ostream &os) const override
 
size_t hash () const noexcept override
 
std::unique_ptr< ArbiterRequirementintersect (const ArbiterRequirement &rhs) const override
 Attempts to create a requirement which expresses the intersection of this requirement and the given one. More...
 
bool operator!= (const Base &other) const
 
bool operator== (const Arbiter::Base &other) const override
 
virtual int priority () const noexcept
 Returns the priority of this requirement. More...
 
bool satisfiedBy (const ArbiterSemanticVersion &) const noexcept
 
bool satisfiedBy (const ArbiterSelectedVersion &) const override
 Returns whether this requirement would be satisfied by using the given selected version. More...
 
virtual void visit (Arbiter::Requirement::Visitor &visitor) const
 Visits the requirement, then any child requirements. More...
 

Detailed Description

A requirement satisfied by any version.

Definition at line 82 of file Requirement.h.

Member Function Documentation

§ clone()

std::unique_ptr<Arbiter::Base> Arbiter::Requirement::Any::clone ( ) const
overridevirtual

Implements Arbiter::Base.

Definition at line 100 of file Requirement.h.

§ cloneRequirement()

std::unique_ptr<ArbiterRequirement> ArbiterRequirement::cloneRequirement ( ) const
inherited

§ describe()

std::ostream& Arbiter::Requirement::Any::describe ( std::ostream &  os) const
overridevirtual

Implements Arbiter::Base.

§ hash()

size_t Arbiter::Requirement::Any::hash ( ) const
overridevirtualnoexcept

Implements ArbiterRequirement.

Definition at line 108 of file Requirement.h.

§ intersect()

std::unique_ptr<ArbiterRequirement> Arbiter::Requirement::Any::intersect ( const ArbiterRequirement rhs) const
overridevirtual

Attempts to create a requirement which expresses the intersection of this requirement and the given one.

In other words, this attempts to find the loosest possible requirement which is a superset of the two inputs. Any version which passes the intersected requirement would also pass either one of the original inputs.

Returns nullptr if no intersection is possible.

Implements ArbiterRequirement.

§ operator!=()

bool Arbiter::Base::operator!= ( const Base other) const
inherited

Definition at line 28 of file Types.h.

§ operator==()

bool Arbiter::Requirement::Any::operator== ( const Arbiter::Base other) const
overridevirtual

Implements Arbiter::Base.

Definition at line 95 of file Requirement.h.

§ priority()

virtual int ArbiterRequirement::priority ( ) const
virtualnoexceptinherited

Returns the priority of this requirement.

Reimplemented in Arbiter::Requirement::Prioritized, and Arbiter::Requirement::Compound.

Definition at line 36 of file Requirement.h.

§ satisfiedBy() [1/2]

bool Arbiter::Requirement::Any::satisfiedBy ( const ArbiterSemanticVersion ) const
noexcept

Definition at line 85 of file Requirement.h.

§ satisfiedBy() [2/2]

bool Arbiter::Requirement::Any::satisfiedBy ( const ArbiterSelectedVersion selectedVersion) const
overridevirtual

Returns whether this requirement would be satisfied by using the given selected version.

Implements ArbiterRequirement.

Definition at line 90 of file Requirement.h.

§ visit()

virtual void ArbiterRequirement::visit ( Arbiter::Requirement::Visitor visitor) const
virtualinherited

Visits the requirement, then any child requirements.

The default implementation simply visits this requirement.

Reimplemented in Arbiter::Requirement::Prioritized, and Arbiter::Requirement::Compound.


The documentation for this class was generated from the following file: