#include "strings/case_shim.h"
#include <cudf/strings/case.hpp>
#include <cudf/strings/capitalize.hpp>
#include <cudf/scalar/scalar.hpp>
#include <cudf/utilities/default_stream.hpp>
#include <string>
namespace cudf_shims {
std::unique_ptr<OwnedColumn> str_to_upper(const OwnedColumn& col) {
auto stream = cudf::get_default_stream();
auto mr = cudf::get_current_device_resource_ref();
auto result = cudf::strings::to_upper(col.view(), stream, mr);
return std::make_unique<OwnedColumn>(std::move(result));
}
std::unique_ptr<OwnedColumn> str_to_lower(const OwnedColumn& col) {
auto stream = cudf::get_default_stream();
auto mr = cudf::get_current_device_resource_ref();
auto result = cudf::strings::to_lower(col.view(), stream, mr);
return std::make_unique<OwnedColumn>(std::move(result));
}
std::unique_ptr<OwnedColumn> str_swapcase(const OwnedColumn& col) {
auto stream = cudf::get_default_stream();
auto mr = cudf::get_current_device_resource_ref();
auto result = cudf::strings::swapcase(col.view(), stream, mr);
return std::make_unique<OwnedColumn>(std::move(result));
}
std::unique_ptr<OwnedColumn> str_capitalize(const OwnedColumn& col, rust::Str delimiters) {
auto stream = cudf::get_default_stream();
auto mr = cudf::get_current_device_resource_ref();
std::string delim(delimiters.data(), delimiters.size());
cudf::string_scalar scalar_delim(delim, true, stream);
auto result = cudf::strings::capitalize(col.view(), scalar_delim, stream, mr);
return std::make_unique<OwnedColumn>(std::move(result));
}
std::unique_ptr<OwnedColumn> str_title(const OwnedColumn& col) {
auto stream = cudf::get_default_stream();
auto mr = cudf::get_current_device_resource_ref();
auto result = cudf::strings::title(col.view(), cudf::strings::string_character_types::ALPHA, stream, mr);
return std::make_unique<OwnedColumn>(std::move(result));
}
std::unique_ptr<OwnedColumn> str_is_title(const OwnedColumn& col) {
auto stream = cudf::get_default_stream();
auto mr = cudf::get_current_device_resource_ref();
auto result = cudf::strings::is_title(col.view(), stream, mr);
return std::make_unique<OwnedColumn>(std::move(result));
}
}