Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
interaction_def.cpp
Go to the documentation of this file.
2
3#include <stdexcept>
4
5namespace bb::avm2::tracegen {
6
8 SharedIndexCache& cache) const
9{
11 jobs.reserve(interactions.size());
12 for (const auto& key : std::ranges::views::keys(interactions)) {
13 jobs.push_back(get_job(key, cache));
14 }
15 return jobs;
16}
17
19 SharedIndexCache& cache) const
20{
22 jobs.reserve(interactions.size());
23 for (const auto& key : std::ranges::views::keys(interactions)) {
24 jobs.push_back(get_test_job(key, cache));
25 }
26 return jobs;
27}
28
30 SharedIndexCache& cache) const
31{
32 return get_job_internal(interaction_name)(/*strict=*/false, cache);
33}
34
36 SharedIndexCache& cache) const
37{
38 return get_job_internal(interaction_name)(/*strict=*/true, cache);
39}
40
41const InteractionDefinition::Factory& InteractionDefinition::get_job_internal(const std::string& interaction_name) const
42{
43 auto it = interactions.find(interaction_name);
44 if (it == interactions.end()) {
45 throw std::runtime_error("Interaction not found: " + std::string(interaction_name));
46 }
47 return it->second;
48}
49
50} // namespace bb::avm2::tracegen
std::vector< std::unique_ptr< InteractionBuilderInterface > > get_all_test_jobs(SharedIndexCache &cache) const
std::vector< std::unique_ptr< InteractionBuilderInterface > > get_all_jobs(SharedIndexCache &cache) const
std::unique_ptr< InteractionBuilderInterface > get_test_job(const std::string &interaction_name, SharedIndexCache &cache) const
const Factory & get_job_internal(const std::string &interaction_name) const
std::unique_ptr< InteractionBuilderInterface > get_job(const std::string &interaction_name, SharedIndexCache &cache) const
std::function< std::unique_ptr< InteractionBuilderInterface >(bool strict, SharedIndexCache &cache)> Factory
std::unordered_map< std::string, Factory > interactions
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition tuple.hpp:13