Porytiles
Loading...
Searching...
No Matches
metatile_attribute_schema.hpp File Reference
#include <bit>
#include <cstddef>
#include <cstdint>
#include <filesystem>
#include <format>
#include <optional>
#include <ostream>
#include <string>
#include <string_view>
#include <unordered_set>
#include <utility>
#include <vector>
#include "porytiles/utilities/panic/panic.hpp"
#include "porytiles/utilities/result/chainable_result.hpp"
Include dependency graph for metatile_attribute_schema.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  porytiles::ProviderDefinition
 Describes where and how a field's named values are declared. More...
 
struct  porytiles::EnumDefinition
 The self-contained description a header enum provider needs to scan and validate values. More...
 
class  porytiles::Field
 One named bit-field within a metatile attribute layout. More...
 
class  porytiles::Schema
 A validated metatile attribute layout: an ordered set of non-overlapping fields. More...
 
struct  std::formatter< porytiles::HeaderFormat >
 
struct  std::formatter< porytiles::FieldRole >
 

Namespaces

namespace  porytiles
 

Enumerations

enum class  porytiles::HeaderFormat { porytiles::defines_only , porytiles::enums_only , porytiles::either }
 Describes which header declaration styles a provider header may use. More...
 
enum class  porytiles::FieldRole { porytiles::layer_type }
 Semantic roles a schema field can carry beyond holding a plain per-metatile value. More...
 

Functions

std::string porytiles::to_string (HeaderFormat format)
 Converts HeaderFormat to string representation.
 
std::ostream & porytiles::operator<< (std::ostream &os, const HeaderFormat format)
 Stream insertion operator for HeaderFormat.
 
std::string porytiles::to_string (FieldRole role)
 Converts FieldRole to string representation.
 
std::optional< FieldRoleporytiles::field_role_from_string (const std::string &text)
 Parses a FieldRole from its string form, or nullopt when the name is not a known role.
 
std::ostream & porytiles::operator<< (std::ostream &os, const FieldRole role)
 Stream insertion operator for FieldRole.
 
std::string porytiles::pin_column_name (FieldRole role)
 Returns the one legal attributes.csv column name for a role's pin column.
 
bool porytiles::is_pin_column_name (const std::string &name)
 Reports whether a column name sits in the reserved pin namespace.
 
std::optional< FieldRoleporytiles::role_from_pin_column_name (const std::string &name)
 Parses the role out of a pin column name.
 

Variables

constexpr std::string_view porytiles::pin_column_prefix = "pin::"
 The reserved prefix marking an attributes.csv header column as a role pin column.