tvm
Classes | Public Types | Public Member Functions | List of all members
tvm::ir::ConfigSchema Class Reference

Dynamic config schema for map-like options. More...

#include <config_schema.h>

Collaboration diagram for tvm::ir::ConfigSchema:

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>
ConfigSchemadef_option (const ffi::String &key, Traits &&... traits)
 Declare a typed option. More...
 
void set_canonicalizer (Canonicalizer f)
 Set whole-object canonicalizer. More...
 
void set_error_on_unknown (bool value)
 Set whether unknown keys trigger an error. More...
 
ConfigMap Resolve (ConfigMap config) const
 Default/validate, then canonicalize a config object. More...
 
const std::vector< OptionEntry > & ListOptions () const
 List declared options in declaration order. More...
 
bool HasOption (const ffi::String &key) const
 Check if an option with the given key exists. More...
 

Detailed Description

Dynamic config schema for map-like options.

The schema supports:

Member Typedef Documentation

◆ Canonicalizer

◆ ConfigMap

using tvm::ir::ConfigSchema::ConfigMap = ffi::Map<ffi::String, ffi::Any>

Member Function Documentation

◆ def_option()

template<typename T , typename... Traits>
ConfigSchema& tvm::ir::ConfigSchema::def_option ( const ffi::String &  key,
Traits &&...  traits 
)
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).

Template Parameters
TThe canonical value type of this option.
TraitsOptional metadata/traits.
Parameters
keyOption key.
traitsOptional traits.
Returns
Reference to *this for chaining.

◆ HasOption()

bool tvm::ir::ConfigSchema::HasOption ( const ffi::String &  key) const
inline

Check if an option with the given key exists.

◆ ListOptions()

const std::vector<OptionEntry>& tvm::ir::ConfigSchema::ListOptions ( ) const
inline

List declared options in declaration order.

Returns
Const reference to the option entries vector.

◆ Resolve()

ConfigMap tvm::ir::ConfigSchema::Resolve ( ConfigMap  config) const
inline

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.

Parameters
configInput config object.
Returns
Canonical validated config object.
Exceptions
ValueError/TypeErrorwith option context.

◆ set_canonicalizer()

void tvm::ir::ConfigSchema::set_canonicalizer ( Canonicalizer  f)
inline

Set whole-object canonicalizer.

◆ set_error_on_unknown()

void tvm::ir::ConfigSchema::set_error_on_unknown ( bool  value)
inline

Set whether unknown keys trigger an error.


The documentation for this class was generated from the following file: