#pragma once
#include <cudf/binaryop.hpp>
#include <cudf/types.hpp>
#include <memory>
#include "rust/cxx.h"
#include "column_shim.h"
#include "scalar_shim.h"
#include "types_shim.h"
namespace cudf_shims {
std::unique_ptr<OwnedColumn> binary_operation_col_col(
const OwnedColumn& lhs,
const OwnedColumn& rhs,
int32_t op,
int32_t output_type);
std::unique_ptr<OwnedColumn> binary_operation_col_scalar(
const OwnedColumn& lhs,
const OwnedScalar& rhs,
int32_t op,
int32_t output_type);
std::unique_ptr<OwnedColumn> binary_operation_scalar_col(
const OwnedScalar& lhs,
const OwnedColumn& rhs,
int32_t op,
int32_t output_type);
bool is_supported_operation(
int32_t out_type,
int32_t lhs_type,
int32_t rhs_type,
int32_t op);
}