A type-safe wrapper for artifact keys.
A result type that maintains a chainable sequence of errors for debugging and error reporting.
Abstract interface for writing tileset artifacts from a Tileset object to a backing store.
virtual Result< void > rollback()=0
Rolls back all buffered write operations in the current transaction.
virtual ChainableResult< void > write(const ArtifactKey &dest_key, const TilesetArtifact &artifact, const Tileset &src)=0
Writes an artifact from a Tileset to the backing store.
virtual ChainableResult< void > commit()=0
Commits all buffered write operations in the current transaction.
virtual ~TilesetArtifactWriter()=default
virtual Result< void > begin_transaction()=0
Begins a new transaction for atomic write operations.
Represents a Pokémon Generation III decomp tileset artifact with type and optional metadata.
A complete tileset containing both Porytiles and Porymap components.
std::expected< T, E > Result
A result with some type T on success, otherwise an error of type E.