arroyo_udf_common/
async_udf.rs

1use crate::FfiArrays;
2use arrow::array::{ArrayBuilder, ArrayData, UInt64Builder};
3use std::sync::{Arc, Mutex};
4
5pub type QueueData = (u64, Vec<ArrayData>);
6pub type ResultMutex = Arc<Mutex<(UInt64Builder, Box<dyn ArrayBuilder>)>>;
7
8#[repr(C)]
9pub struct FfiAsyncUdfHandle {
10    _data: [u8; 0],
11    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
12}
13
14#[repr(C)]
15#[derive(Copy, Clone)]
16pub struct SendableFfiAsyncUdfHandle {
17    pub ptr: *mut FfiAsyncUdfHandle,
18}
19
20unsafe impl Send for SendableFfiAsyncUdfHandle {}
21unsafe impl Sync for SendableFfiAsyncUdfHandle {}
22
23#[repr(C)]
24pub enum DrainResult {
25    Data(FfiArrays),
26    None,
27    Error,
28}