use core::ffi::c_void;
use crate::{
common::extern_c::binding::builder::ColumnsBuilder, transform::extern_c::wire::context::ExternCContextRaw,
};
pub struct ExternCTransformContext {
pub(crate) ctx: *mut ExternCContextRaw,
}
impl ExternCTransformContext {
pub fn new(ctx: *mut ExternCContextRaw) -> Self {
assert!(!ctx.is_null(), "ExternCContextRaw pointer must not be null");
Self {
ctx,
}
}
pub fn builder(&mut self) -> ColumnsBuilder<'_> {
unsafe {
ColumnsBuilder::new(
self.ctx as *mut c_void,
(*self.ctx).callbacks.builder,
(*self.ctx).written_at_nanos,
)
}
}
}