pub struct WasmScalarFunction { /* private fields */ }Expand description
WASM scalar function that loads and executes a .wasm module.
Each WASM module must export:
alloc(size: i32) -> i32— allocatesizebytes, return pointerdealloc(ptr: i32, size: i32)— free memoryscalar(input_ptr: i32, input_len: i32) -> i32— pointer to output (first 4 bytes at output pointer = output length as LE u32)
Input: the context’s columns marshalled as flat binary.
Output: flat binary representing a single-column Columns, from which
the first column’s ColumnData is extracted.
Implementations§
Trait Implementations§
Source§impl ScalarFunction for WasmScalarFunction
impl ScalarFunction for WasmScalarFunction
fn return_type(&self, _input_types: &[Type]) -> Type
fn scalar<'a>( &'a self, ctx: ScalarFunctionContext<'a>, ) -> ScalarFunctionResult<ColumnData>
impl Send for WasmScalarFunction
impl Sync for WasmScalarFunction
Auto Trait Implementations§
impl Freeze for WasmScalarFunction
impl RefUnwindSafe for WasmScalarFunction
impl Unpin for WasmScalarFunction
impl UnsafeUnpin for WasmScalarFunction
impl UnwindSafe for WasmScalarFunction
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more