#pragma once
#include <cudf/hashing.hpp>
#include <cudf/table/table.hpp>
#include <cudf/column/column.hpp>
#include <memory>
#include "rust/cxx.h"
#include "column_shim.h"
#include "table_shim.h"
namespace cudf_shims {
std::unique_ptr<OwnedColumn> hash_murmur3(const OwnedTable& table, uint32_t seed);
std::unique_ptr<OwnedColumn> hash_xxhash64(const OwnedTable& table, uint64_t seed);
std::unique_ptr<OwnedColumn> hash_md5(const OwnedTable& table);
std::unique_ptr<OwnedColumn> hash_sha256(const OwnedTable& table);
std::unique_ptr<OwnedColumn> hash_sha1(const OwnedTable& table);
std::unique_ptr<OwnedColumn> hash_sha224(const OwnedTable& table);
std::unique_ptr<OwnedColumn> hash_sha384(const OwnedTable& table);
std::unique_ptr<OwnedColumn> hash_sha512(const OwnedTable& table);
std::unique_ptr<OwnedColumn> hash_xxhash32(const OwnedTable& table, uint32_t seed);
std::unique_ptr<OwnedTable> hash_murmurhash3_x64_128(const OwnedTable& table, uint64_t seed);
}