ContractRegistry.h File
Contract registry for builder-level validation. More...
Included Headers
#include <memory>
#include <string>
#include <unordered_map>
#include <utility>
#include <vector>
#include "contracts/Contract.h"
#include "contracts/ValidationReport.h"
Namespaces Index
| namespace | simaai |
| namespace | neat |
Classes Index
| class | ContractRegistry |
|
Holds a set of Contracts and runs them to produce a ValidationReport. More... | |
Description
Contract registry for builder-level validation.
File Listing
The file content with the documentation metadata removed is:
15#include "contracts/Contract.h"
16#include "contracts/ValidationReport.h"
18namespace simaai::neat {
25class ContractRegistry final {
27 using ContractPtr = std::shared_ptr<Contract>;
29 ContractRegistry() = default;
32 ContractRegistry& add(ContractPtr c) {
48 template <class T, class... Args> ContractRegistry& emplace(Args&&... args) {
49 return add(std::make_shared<T>(std::forward<Args>(args)...));
82 ContractPtr get(const std::string& id) const {
99 ValidationReport validate(const NodeGroup& nodes, const ValidationContext& ctx) const {
100 ValidationReport report;
108 report.note_contract_run(id);
113 report.add_issue({
114 .severity = ValidationSeverity::Error,
121 report.add_issue({
122 .severity = ValidationSeverity::Error,
Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.9.1.