duckdb_extension_framework/table_functions/
function_info.rs1use crate::as_string;
2use crate::duckly::{
3 duckdb_function_get_bind_data, duckdb_function_get_extra_info, duckdb_function_get_init_data,
4 duckdb_function_get_local_init_data, duckdb_function_info, duckdb_function_set_error,
5};
6#[allow(unused)]
7use crate::table_functions::{BindInfo, InitInfo, TableFunction};
8use std::os::raw::c_char;
9
10#[derive(Debug)]
12pub struct FunctionInfo(duckdb_function_info);
13
14impl FunctionInfo {
15 pub fn set_error(&self, error: &str) {
20 unsafe {
21 duckdb_function_set_error(self.0, as_string!(error));
22 }
23 }
24 pub fn get_bind_data<T>(&self) -> *mut T {
32 unsafe { duckdb_function_get_bind_data(self.0).cast() }
33 }
34 pub fn get_init_data<T>(&self) -> *mut T {
39 unsafe { duckdb_function_get_init_data(self.0).cast() }
40 }
41 pub fn get_extra_info<T>(&self) -> *mut T {
46 unsafe { duckdb_function_get_extra_info(self.0).cast() }
47 }
48 pub fn get_local_init_data<T>(&self) -> *mut T {
53 unsafe { duckdb_function_get_local_init_data(self.0).cast() }
54 }
55}
56
57impl From<duckdb_function_info> for FunctionInfo {
58 fn from(ptr: duckdb_function_info) -> Self {
59 Self(ptr)
60 }
61}