29 using DataType = std::array<TaggedData<std::set<std::string>>,
30 static_cast<std::size_t
>(DataKind::kKindCount)>;
31 void Set(DataKind kind, std::string key);
33 void Remove(DataKind kind, std::string
const& key);
35 [[nodiscard]]
bool Contains(DataKind kind, std::string
const& key)
const;
37 [[nodiscard]] std::set<std::string>
const& SetForKind(DataKind kind);
43 [[nodiscard]] std::size_t
Size()
const;
45 [[nodiscard]]
typename DataType::const_iterator begin()
const;
47 [[nodiscard]]
typename DataType::const_iterator end()
const;
50 [[nodiscard]] std::set<std::string>
const& Data(DataKind kind)
const;
52 [[nodiscard]] std::set<std::string>& Data(DataKind kind);
71 std::array<TaggedData<std::unordered_map<std::string, DependencySet>>,
72 static_cast<std::size_t
>(DataKind::kKindCount)>;
75 [[nodiscard]] std::optional<DependencySet> Get(
77 std::string
const& key)
const;
81 [[nodiscard]]
typename DataType::const_iterator begin()
const;
83 [[nodiscard]]
typename DataType::const_iterator end()
const;