Skip to main content

wasm_sql/core/bindings/
sql_arguments.rs

1use std::cell::RefCell;
2
3use crate::core::bindings::generated::wasm_sql::core::query_types::SqlArguments;
4use crate::{core::bindings::SqlHostState, sqldb::SqlDatabase};
5
6#[allow(unused)]
7pub struct SqlArgumentsImpl {
8    pub(crate) args: RefCell<<SqlDatabase as sqlx::Database>::Arguments<'static>>,
9}
10
11impl crate::core::bindings::generated::wasm_sql::core::query_types::HostSqlArguments for SqlHostState {
12    fn new(&mut self) -> Result<wasmtime::component::Resource<SqlArgumentsImpl>, wasmtime::Error> {
13        let args = self.table.push(SqlArgumentsImpl {
14            args: RefCell::new(<SqlDatabase as sqlx::Database>::Arguments::default()),
15        })?;
16
17        Ok(args)
18    }
19
20    fn drop(&mut self, rep: wasmtime::component::Resource<SqlArguments>) -> wasmtime::Result<()> {
21        self.table.delete(rep)?;
22
23        Ok(())
24    }
25}