20class CapabilitiesTest;
43 using RegistryType = std::map<std::string, Capability, std::less<>>;
106 const std::string_view doc);
115#if defined(MOOSE_UNIT_TEST) || defined(FOR_PYCAPABILITIES)
126 const Capability &
get(
const std::string & capability)
const;
127#ifdef MOOSE_UNIT_TEST
162 std::string requirements,
166#ifdef MOOSE_UNIT_TEST
167 friend class ::CapabilitiesTest;
174#if defined(MOOSE_UNIT_TEST) || defined(FOR_PYCAPABILITIES)
178 return const_cast<Capability *
>(std::as_const(*this).query(capability));
182#ifdef MOOSE_UNIT_TEST
186 return const_cast<Capability &
>(std::as_const(*this).get(capability));
An entry for a single capability.
std::variant< bool, int, std::string > Value
A capability can have a bool, int, or string value.
Registry of capabilities that checks capability requirements.
CheckResult check(std::string requirements, const CapabilityRegistry::CheckOptions &options=CapabilityRegistry::CheckOptions()) const
Checks if a set of requirements is satisified by the capabilities.
const Capability * query(std::string capability) const
Query a capability, if it exists, otherwise nullptr.
static const std::set< std::string, std::less<> > augmented_capability_names
Capabilities that are reserved and can only be augmented.
std::map< std::string, Capability, std::less<> > RegistryType
Type for the registry.
RegistryType _registry
Registry storage.
Capability & add(const std::string_view name, const Moose::Capability::Value &value, const std::string_view doc)
Add a capability.
CheckState
Return state for check.
const Capability & get(const std::string &capability) const
Get a capability.
~CapabilityRegistry()=default
std::set< std::string > ignore_capabilities
Capabilities to ignore; checks using them will always pass.
bool certain
Whether or not all capabilities must be known.
Storage for the result from check().
CheckState state
State of the check.
std::set< std::string > capability_names
The capability names that existed in the check string.