#pragma once
#include <cstddef>
#include <utility>
#include "../common/hist_util.h"
#include "../common/io.h"
#include "gradient_index.h"
#include "sparse_page_writer.h"
namespace xgboost::common {
class HistogramCuts;
}
namespace xgboost::data {
class GHistIndexRawFormat : public SparsePageFormat<GHistIndexMatrix> {
common::HistogramCuts cuts_;
public:
[[nodiscard]] bool Read(GHistIndexMatrix* page, common::AlignedResourceReadStream* fi) override;
[[nodiscard]] std::size_t Write(GHistIndexMatrix const& page,
common::AlignedFileWriteStream* fo) override;
explicit GHistIndexRawFormat(common::HistogramCuts cuts) : cuts_{std::move(cuts)} {}
};
}