#ifndef SIRIUS_GDAL_STREAM_H_
#define SIRIUS_GDAL_STREAM_H_
#include "sirius/image.h"
namespace sirius {
namespace gdal {
struct StreamBlock {
    StreamBlock() = default;
    StreamBlock(Image&& i_block_image, int i_row_idx, int i_col_idx,
                const Padding& i_padding)
        : buffer(std::move(i_block_image)),
          row_idx(i_row_idx),
          col_idx(i_col_idx),
          padding(i_padding),
          is_initialized(true) {}
    ~StreamBlock() = default;
    StreamBlock(const StreamBlock&) = default;
    StreamBlock& operator=(const StreamBlock&) = default;
    StreamBlock(StreamBlock&&) = default;
    StreamBlock& operator=(StreamBlock&&) = default;
    Image buffer{};
    int row_idx = 0;
    int col_idx = 0;
    Padding padding{};
    bool is_initialized = false;
};
}  // namespace gdal
}  // namespace sirius
#endif  // SIRIUS_GDAL_STREAM_H_