Porytiles
Loading...
Searching...
No Matches
layout_metadata_provider.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <set>
4#include <string>
5
7
8namespace porytiles {
9
23 public:
24 virtual ~LayoutMetadataProvider() = default;
25
33 [[nodiscard]] virtual bool exists(const std::string &layout_name_or_id) const = 0;
34
42 [[nodiscard]] virtual ChainableResult<std::size_t> width(const std::string &layout_name_or_id) const = 0;
43
51 [[nodiscard]] virtual ChainableResult<std::size_t> height(const std::string &layout_name_or_id) const = 0;
52
60 [[nodiscard]] virtual ChainableResult<std::string> primary_tileset(const std::string &layout_name_or_id) const = 0;
61
69 [[nodiscard]] virtual ChainableResult<std::string>
70 secondary_tileset(const std::string &layout_name_or_id) const = 0;
71
81 [[nodiscard]] virtual ChainableResult<std::set<std::string>> layout_names() const = 0;
82
92 [[nodiscard]] virtual ChainableResult<std::set<std::string>> layout_ids() const = 0;
93};
94
95} // namespace porytiles
A result type that maintains a chainable sequence of errors for debugging and error reporting.
Abstract interface for querying layout metadata by name.
virtual ChainableResult< std::set< std::string > > layout_ids() const =0
Returns all layout IDs known to this provider.
virtual ChainableResult< std::string > secondary_tileset(const std::string &layout_name_or_id) const =0
Determines the given layout's secondary tileset.
virtual ChainableResult< std::size_t > width(const std::string &layout_name_or_id) const =0
Determines the given layout's width in metatiles.
virtual ~LayoutMetadataProvider()=default
virtual bool exists(const std::string &layout_name_or_id) const =0
Checks whether a layout exists in the backing store for the given layout name or ID.
virtual ChainableResult< std::set< std::string > > layout_names() const =0
Returns all layout names known to this provider.
virtual ChainableResult< std::string > primary_tileset(const std::string &layout_name_or_id) const =0
Determines the given layout's primary tileset.
virtual ChainableResult< std::size_t > height(const std::string &layout_name_or_id) const =0
Determines the given layout's height in metatiles.