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
3namespace bb::avm2::tracegen {
4
6 SharedIndexCache& cache) const
7{
9 jobs.reserve(interactions.size());
10 for (const auto& key : std::ranges::views::keys(interactions)) {
11 jobs.push_back(get_job(key, cache));
12 }
13 return jobs;
14}
15
17 SharedIndexCache& cache) const
18{
20 jobs.reserve(interactions.size());
21 for (const auto& key : std::ranges::views::keys(interactions)) {
22 jobs.push_back(get_test_job(key, cache));
23 }
24 return jobs;
25}
26
28 SharedIndexCache& cache) const
29{
30 return get_job_internal(interaction_name)(/*strict=*/false, cache);
31}
32
34 SharedIndexCache& cache) const
35{
36 return get_job_internal(interaction_name)(/*strict=*/true, cache);
37}
38
39const InteractionDefinition::Factory& InteractionDefinition::get_job_internal(const std::string& interaction_name) const
40{
41 auto it = interactions.find(interaction_name);
42 if (it == interactions.end()) {
43 throw std::runtime_error("Interaction not found: " + std::string(interaction_name));
44 }
45 return it->second;
46}
47
48} // 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