4 #error "This file must be compiled as C++." 7 #include <arbiter/Dependency.h> 19 #include <unordered_set> 20 #include <unordered_map> 38 std::ostream &
describe (std::ostream &os)
const override;
41 bool operator< (
const ArbiterProjectIdentifier &other)
const 43 return _value < other._value;
52 ArbiterDependency (ArbiterProjectIdentifier projectIdentifier,
const ArbiterRequirement &requirement);
66 std::ostream &
describe (std::ostream &os)
const override;
71 return _projectIdentifier < other._projectIdentifier;
75 std::unique_ptr<ArbiterRequirement> _requirement;
90 ArbiterDependencyList &
operator= (
const ArbiterDependencyList &) =
default;
93 ArbiterDependencyList &
operator= (ArbiterDependencyList &&) =
default;
96 std::ostream &
describe (std::ostream &os)
const override;
112 std::ostream &
describe (std::ostream &os)
const override;
115 bool operator< (
const ArbiterResolvedDependency &other)
const;
121 struct hash<ArbiterProjectIdentifier>
final 124 size_t
operator() (
const ArbiterProjectIdentifier &project)
const;
128 struct hash<ArbiterDependency>
final 131 size_t
operator() (
const ArbiterDependency &dependency)
const;
135 struct hash<ArbiterResolvedDependency>
final 138 size_t
operator() (
const ArbiterResolvedDependency &dependency)
const;
std::unique_ptr< Arbiter::Base > clone() const override
ArbiterDependencyList & operator=(const ArbiterDependencyList &)=default
const ArbiterRequirement & requirement() const noexcept
ArbiterDependency(ArbiterProjectIdentifier projectIdentifier, const ArbiterRequirement &requirement)
auto makeIteratorRange(const Collection &collection)
Creates an IteratorRange encompassing the entirety of the given read-only collection.
ArbiterProjectIdentifier(Value value)
ArbiterDependency(const ArbiterDependency &other)
std::unique_ptr< Arbiter::Base > clone() const override
bool operator==(const Arbiter::Base &other) const override
std::unique_ptr< Arbiter::Base > clone() const override
std::vector< ArbiterDependency > _dependencies
ArbiterDependencyList & operator=(ArbiterDependencyList &&)=default
size_t operator()(const ArbiterProjectIdentifier &project) const
std::ostream & describe(std::ostream &os) const override
ArbiterDependencyList(std::vector< ArbiterDependency > dependencies)
size_t operator()(const ArbiterResolvedDependency &dependency) const
ArbiterResolvedDependency(ArbiterProjectIdentifier project, ArbiterSelectedVersion version)
std::ostream & describe(std::ostream &os) const override
std::ostream & describe(std::ostream &os) const override
ArbiterProjectIdentifier()
bool operator==(const Arbiter::Base &other) const override
ArbiterDependencyList()=default
ArbiterDependencyList(ArbiterDependencyList &&)=default
ArbiterDependency & operator=(const ArbiterDependency &other)
ArbiterProjectIdentifier _projectIdentifier
ArbiterDependencyList(const ArbiterDependencyList &)=default
bool operator==(const Arbiter::Base &other) const override
ArbiterSelectedVersion _version
bool operator==(const Arbiter::Base &other) const override
size_t operator()(const ArbiterDependency &dependency) const
std::ostream & describe(std::ostream &os) const override
virtual std::unique_ptr< Base > clone() const =0
std::unique_ptr< Arbiter::Base > clone() const override
ArbiterProjectIdentifier _project