#ifndef MltTileStats_D_HPP
#define MltTileStats_D_HPP
#include "diplomat_runtime.hpp"
#include <cstdlib>
#include <functional>
#include <memory>
#include <optional>
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#include <stdio.h>
namespace diplomat::capi {
struct ConvertError;
}
class ConvertError;
struct MltLayerBytes;
namespace diplomat {
namespace capi {
struct MltTileStats;
} }
class MltTileStats {
public:
inline static diplomat::result<std::unique_ptr<MltTileStats>, std::unique_ptr<ConvertError>> from_bytes(
diplomat::span<const uint8_t> mlt);
inline size_t layer_count() const;
inline std::string layer_name(size_t i) const;
template <typename W>
inline void layer_name_write(size_t i, W& writeable_output) const;
inline std::optional<MltLayerBytes> layer_bytes(size_t i) const;
inline const diplomat::capi::MltTileStats* AsFFI() const;
inline diplomat::capi::MltTileStats* AsFFI();
inline static const MltTileStats* FromFFI(const diplomat::capi::MltTileStats* ptr);
inline static MltTileStats* FromFFI(diplomat::capi::MltTileStats* ptr);
inline static void operator delete(void* ptr);
private:
MltTileStats() = delete;
MltTileStats(const MltTileStats&) = delete;
MltTileStats(MltTileStats&&) noexcept = delete;
MltTileStats operator=(const MltTileStats&) = delete;
MltTileStats operator=(MltTileStats&&) noexcept = delete;
static void operator delete[](void*, size_t) = delete;
};
#endif