11#include "lix/libutil/json-fwd.hh"
32 struct Names : std::set<OutputName> {
37 Names(
const std::set<OutputName> & s)
38 : std::set<OutputName>(s)
44 Names(std::set<OutputName> && s)
57 struct All : std::monostate { };
59 typedef std::variant<All, Names> Raw;
72 bool contains(
const OutputName & output)
const;
89 static std::optional<OutputsSpec> parseOpt(std::string_view s);
91 std::string to_string()
const;
93 static void to_json(JSON & json,
const OutputsSpec & t);
101 typedef std::variant<Default, Explicit> Raw;
118 static std::pair<std::string_view, ExtendedOutputsSpec>
parse(std::string_view s);
119 static std::optional<std::pair<std::string_view, ExtendedOutputsSpec>> parseOpt(std::string_view s);
121 std::string to_string()
const;
#define GENERATE_CMP(args...)
Definition comparator.hh:65
std::string_view OutputNameView
Definition outputs-spec.hh:26
std::string OutputName
Definition outputs-spec.hh:20
Definition outputs-spec.hh:98
ExtendedOutputsSpec()=delete
static std::pair< std::string_view, ExtendedOutputsSpec > parse(std::string_view s)
Definition outputs-spec.cc:72
Definition outputs-spec.hh:57
Definition outputs-spec.hh:32
Names(std::set< OutputName > &&s)
Definition outputs-spec.hh:44
Definition outputs-spec.hh:28
bool isSubsetOf(const OutputsSpec &outputs) const
Definition outputs-spec.cc:129
OutputsSpec union_(const OutputsSpec &that) const
Definition outputs-spec.cc:107
static OutputsSpec parse(std::string_view s)
Definition outputs-spec.cc:49
#define MAKE_WRAPPER_CONSTRUCTOR(CLASS_NAME)
Definition variant-wrapper.hh:27