use super::*;
pub struct BinaryNameSpace(pub(crate) Expr);
impl BinaryNameSpace {
pub fn contains_literal(self, pat: Expr) -> Expr {
self.0
.map_binary(FunctionExpr::BinaryExpr(BinaryFunction::Contains), pat)
}
pub fn ends_with(self, sub: Expr) -> Expr {
self.0
.map_binary(FunctionExpr::BinaryExpr(BinaryFunction::EndsWith), sub)
}
pub fn starts_with(self, sub: Expr) -> Expr {
self.0
.map_binary(FunctionExpr::BinaryExpr(BinaryFunction::StartsWith), sub)
}
pub fn size_bytes(self) -> Expr {
self.0
.map_unary(FunctionExpr::BinaryExpr(BinaryFunction::Size))
}
#[cfg(feature = "binary_encoding")]
pub fn hex_decode(self, strict: bool) -> Expr {
self.0
.map_unary(FunctionExpr::BinaryExpr(BinaryFunction::HexDecode(strict)))
}
#[cfg(feature = "binary_encoding")]
pub fn hex_encode(self) -> Expr {
self.0
.map_unary(FunctionExpr::BinaryExpr(BinaryFunction::HexEncode))
}
#[cfg(feature = "binary_encoding")]
pub fn base64_decode(self, strict: bool) -> Expr {
self.0
.map_unary(FunctionExpr::BinaryExpr(BinaryFunction::Base64Decode(
strict,
)))
}
#[cfg(feature = "binary_encoding")]
pub fn base64_encode(self) -> Expr {
self.0
.map_unary(FunctionExpr::BinaryExpr(BinaryFunction::Base64Encode))
}
#[cfg(feature = "binary_encoding")]
pub fn reinterpret(self, to_type: impl Into<DataTypeExpr>, is_little_endian: bool) -> Expr {
self.0
.map_unary(FunctionExpr::BinaryExpr(BinaryFunction::Reinterpret(
to_type.into(),
is_little_endian,
)))
}
}