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
21 public:
22 virtual ~LayoutMetadataProvider() = default;
23
29 [[nodiscard]] virtual bool exists(const std::string &layout_name_or_id) const = 0;
30
36 [[nodiscard]] virtual ChainableResult<std::size_t> width(const std::string &layout_name_or_id) const = 0;
37
43 [[nodiscard]] virtual ChainableResult<std::size_t> height(const std::string &layout_name_or_id) const = 0;
44
50 [[nodiscard]] virtual ChainableResult<std::string> primary_tileset(const std::string &layout_name_or_id) const = 0;
51
57 [[nodiscard]] virtual ChainableResult<std::string>
58 secondary_tileset(const std::string &layout_name_or_id) const = 0;
59
67 [[nodiscard]] virtual ChainableResult<std::set<std::string>> layout_names() const = 0;
68
76 [[nodiscard]] virtual ChainableResult<std::set<std::string>> layout_ids() const = 0;
77};
78
79} // 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.