diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/buildtool/build_engine/target_map/result_map.hpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/buildtool/build_engine/target_map/result_map.hpp b/src/buildtool/build_engine/target_map/result_map.hpp index 173f59d9..ca55ee74 100644 --- a/src/buildtool/build_engine/target_map/result_map.hpp +++ b/src/buildtool/build_engine/target_map/result_map.hpp @@ -4,6 +4,7 @@ #include <algorithm> #include <fstream> #include <mutex> +#include <optional> #include <string> #include <thread> #include <vector> @@ -109,6 +110,20 @@ class ResultTargetMap { }); } + [[nodiscard]] auto GetAction(const ActionIdentifier& identifier) + -> std::optional<ActionDescription::Ptr> { + for (const auto& target : targets_) { + for (const auto& el : target) { + for (const auto& action : el.second->Actions()) { + if (action->Id() == identifier) { + return action; + } + } + } + } + return std::nullopt; + } + template <bool kIncludeOrigins = false> [[nodiscard]] auto ToResult() const -> ResultType<kIncludeOrigins> { ResultType<kIncludeOrigins> result{}; |