#pragma once
#include <cudf/transform.hpp>
#include <cudf/column/column.hpp>
#include <cudf/column/column_factories.hpp>
#include <memory>
#include <vector>
#include "rust/cxx.h"
#include "column_shim.h"
#include "table_shim.h"
namespace cudf_shims {
std::unique_ptr<OwnedColumn> nans_to_nulls(const OwnedColumn& col);
rust::Vec<uint8_t> bools_to_mask(const OwnedColumn& col);
std::unique_ptr<OwnedTable> encode_table(
const OwnedTable& input,
std::unique_ptr<OwnedColumn>& out_indices);
std::unique_ptr<OwnedTable> one_hot_encode(
const OwnedColumn& input,
const OwnedColumn& categories);
std::unique_ptr<OwnedColumn> mask_to_bools(
rust::Slice<const uint8_t> mask_data,
int32_t begin_bit,
int32_t end_bit);
std::unique_ptr<OwnedColumn> row_bit_count(const OwnedTable& table);
}