|
tvm
|
Dynamic config schema for map-like options. More...
#include <config_schema.h>
Classes | |
| struct | AttrValidator |
| Trait to set a custom validator for a config option. More... | |
| struct | OptionEntry |
| Schema entry for one declared option. More... | |
Public Types | |
| using | ConfigMap = ffi::Map< ffi::String, ffi::Any > |
| using | Canonicalizer = ffi::TypedFunction< ConfigMap(ConfigMap)> |
Public Member Functions | |
| template<typename T , typename... Traits> | |
| ConfigSchema & | def_option (const ffi::String &key, Traits &&... traits) |
| Declare a typed option. | |
| void | set_canonicalizer (Canonicalizer f) |
| Set whole-object canonicalizer. | |
| void | set_error_on_unknown (bool value) |
| Set whether unknown keys trigger an error. | |
| ConfigMap | Resolve (ConfigMap config) const |
| Default/validate, then canonicalize a config object. | |
| const std::vector< OptionEntry > & | ListOptions () const |
| List declared options in declaration order. | |
| bool | HasOption (const ffi::String &key) const |
| Check if an option with the given key exists. | |
Dynamic config schema for map-like options.
The schema supports:
def_option<T>)set_canonicalizer)Resolve) that performs validation/defaulting, unknown-key policy, and canonicalization (last). | using tvm::ir::ConfigSchema::Canonicalizer = ffi::TypedFunction<ConfigMap(ConfigMap)> |
| using tvm::ir::ConfigSchema::ConfigMap = ffi::Map<ffi::String, ffi::Any> |
|
inline |
Declare a typed option.
Validation/coercion is implicitly generated from T. Additional optional traits may be supplied (e.g. refl::DefaultValue, const char* doc).
| T | The canonical value type of this option. |
| Traits | Optional metadata/traits. |
| key | Option key. |
| traits | Optional traits. |
*this for chaining. Check if an option with the given key exists.
|
inline |
List declared options in declaration order.
Default/validate, then canonicalize a config object.
Resolve flow: 1) Validate/coerce declared options in declaration order. 2) Materialize defaults and enforce required options. 3) Apply unknown-key policy. 4) Run canonicalizer as final step.
| config | Input config object. |
| ValueError/TypeError | with option context. |
|
inline |
Set whole-object canonicalizer.
Set whether unknown keys trigger an error.