#pragma once
#include <cudf/strings/convert/convert_integers.hpp>
#include <cudf/strings/convert/convert_floats.hpp>
#include <cudf/strings/convert/convert_booleans.hpp>
#include <cudf/strings/convert/convert_datetime.hpp>
#include <cudf/strings/convert/convert_durations.hpp>
#include <cudf/strings/convert/convert_fixed_point.hpp>
#include <cudf/strings/convert/convert_ipv4.hpp>
#include <cudf/strings/convert/convert_urls.hpp>
#include <memory>
#include "rust/cxx.h"
#include "column_shim.h"
namespace cudf_shims {
std::unique_ptr<OwnedColumn> str_to_integers(
const OwnedColumn& col, int32_t type_id);
std::unique_ptr<OwnedColumn> str_from_integers(const OwnedColumn& col);
std::unique_ptr<OwnedColumn> str_to_floats(
const OwnedColumn& col, int32_t type_id);
std::unique_ptr<OwnedColumn> str_from_floats(const OwnedColumn& col);
std::unique_ptr<OwnedColumn> str_to_booleans(
const OwnedColumn& col, rust::Str true_str);
std::unique_ptr<OwnedColumn> str_from_booleans(
const OwnedColumn& col, rust::Str true_str, rust::Str false_str);
std::unique_ptr<OwnedColumn> str_to_timestamps(
const OwnedColumn& col, rust::Str format, int32_t type_id);
std::unique_ptr<OwnedColumn> str_from_timestamps(
const OwnedColumn& col, rust::Str format);
std::unique_ptr<OwnedColumn> str_to_durations(
const OwnedColumn& col, rust::Str format, int32_t type_id);
std::unique_ptr<OwnedColumn> str_from_durations(
const OwnedColumn& col, rust::Str format);
std::unique_ptr<OwnedColumn> str_to_fixed_point(
const OwnedColumn& col, int32_t type_id, int32_t scale);
std::unique_ptr<OwnedColumn> str_from_fixed_point(const OwnedColumn& col);
std::unique_ptr<OwnedColumn> str_is_integer(const OwnedColumn& col);
std::unique_ptr<OwnedColumn> str_is_float(const OwnedColumn& col);
std::unique_ptr<OwnedColumn> str_hex_to_integers(
const OwnedColumn& col, int32_t type_id);
std::unique_ptr<OwnedColumn> str_integers_to_hex(const OwnedColumn& col);
std::unique_ptr<OwnedColumn> str_ipv4_to_integers(const OwnedColumn& col);
std::unique_ptr<OwnedColumn> str_integers_to_ipv4(const OwnedColumn& col);
std::unique_ptr<OwnedColumn> str_url_encode(const OwnedColumn& col);
std::unique_ptr<OwnedColumn> str_url_decode(const OwnedColumn& col);
std::unique_ptr<OwnedColumn> str_is_fixed_point(const OwnedColumn& col, int32_t type_id);
std::unique_ptr<OwnedColumn> str_cast_to_integer(
const OwnedColumn& col, int32_t type_id);
std::unique_ptr<OwnedColumn> str_cast_from_integer(const OwnedColumn& col);
std::unique_ptr<OwnedColumn> str_format_list_column(const OwnedColumn& col);
std::unique_ptr<OwnedColumn> str_is_timestamp(const OwnedColumn& col, rust::Str format);
std::unique_ptr<OwnedColumn> str_is_hex(const OwnedColumn& col);
std::unique_ptr<OwnedColumn> str_is_ipv4(const OwnedColumn& col);
}