106 return validated_val;
114 return validated_val;
172 if (raw_val.has_value()) {
188 if (raw_val.has_value()) {
A result type that maintains a chainable sequence of errors for debugging and error reporting.
Interface that defines a complete infra layer configuration.
ChainableResult< ConfigValue< std::string > > tileset_paths_secondary_bin(ConfigScopeType type, const std::string &scope) const
virtual void add_provider(std::unique_ptr< ConfigProvider > provider)=0
Prepends a ConfigProvider to the provider chain at highest priority.
virtual ChainableResult< ConfigValue< std::optional< std::size_t > > > metatile_attribute_size_raw(ConfigScopeType type, const std::string &scope) const =0
ChainableResult< ConfigValue< MetatileAttributeFieldOverrides > > metatile_attribute_field_overrides(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< RolePinDefinitions > > role_pins_raw(ConfigScopeType type, const std::string &scope) const =0
virtual ChainableResult< ConfigValue< bool > > tileset_animations_wire_anim_code_raw(ConfigScopeType type, const std::string &scope) const =0
ChainableResult< ConfigValue< std::optional< std::size_t > > > metatile_attribute_size(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< MetatileAttributeFieldDefinitions > > metatile_attribute_fields_raw(ConfigScopeType type, const std::string &scope) const =0
virtual ChainableResult< ConfigValue< std::optional< std::size_t > > > metatile_attribute_declaration_size_validated(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< std::string > > tileset_paths_primary_bin_validated(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< std::string > > tileset_paths_primary_src_raw(ConfigScopeType type, const std::string &scope) const =0
virtual ChainableResult< ConfigValue< std::string > > tileset_paths_primary_src_validated(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< std::string > > tileset_paths_secondary_src_validated(ConfigScopeType type, const std::string &scope) const
virtual ~InfraConfig()=default
virtual ChainableResult< ConfigValue< std::string > > tileset_paths_secondary_src_raw(ConfigScopeType type, const std::string &scope) const =0
virtual ChainableResult< ConfigValue< bool > > tileset_animations_wire_anim_code_validated(ConfigScopeType type, const std::string &scope) const
ChainableResult< ConfigValue< std::string > > tileset_paths_primary_bin(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< RolePinDefinitions > > role_pins_validated(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< std::optional< std::size_t > > > metatile_attribute_declaration_size_raw(ConfigScopeType type, const std::string &scope) const =0
virtual ChainableResult< ConfigValue< std::string > > tileset_paths_secondary_bin_validated(ConfigScopeType type, const std::string &scope) const
ChainableResult< ConfigValue< std::string > > tileset_paths_primary_src(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< MetatileAttributeFieldDefinitions > > metatile_attribute_fields_validated(ConfigScopeType type, const std::string &scope) const
ChainableResult< ConfigValue< bool > > tileset_animations_wire_anim_code(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< MetatileAttributeFieldOverrides > > metatile_attribute_field_overrides_validated(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< MetatileAttributeFieldOverrides > > metatile_attribute_field_overrides_raw(ConfigScopeType type, const std::string &scope) const =0
virtual ChainableResult< ConfigValue< std::string > > tileset_paths_primary_bin_raw(ConfigScopeType type, const std::string &scope) const =0
ChainableResult< ConfigValue< std::string > > tileset_paths_secondary_src(ConfigScopeType type, const std::string &scope) const
ChainableResult< ConfigValue< RolePinDefinitions > > role_pins(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< std::optional< std::size_t > > > metatile_attribute_size_validated(ConfigScopeType type, const std::string &scope) const
ChainableResult< ConfigValue< std::optional< std::size_t > > > metatile_attribute_declaration_size(ConfigScopeType type, const std::string &scope) const
ChainableResult< ConfigValue< MetatileAttributeFieldDefinitions > > metatile_attribute_fields(ConfigScopeType type, const std::string &scope) const
virtual ChainableResult< ConfigValue< std::string > > tileset_paths_secondary_bin_raw(ConfigScopeType type, const std::string &scope) const =0
ChainableResult< ConfigValue< std::optional< std::size_t > > > optional_size_t_val_one_two_or_four(const ConfigValue< std::optional< std::size_t > > &val)
Validates that an optional size_t config value, when set, is 1, 2, or 4.
ConfigScopeType
Specifies the scope type for configuration value lookups.
Cross-cutting configuration validators shared across all architectural layers.