use std::sync::Arc;
use wasmtime::component::{HasData, ResourceTable};
use crate::sqldb::SqlDB;
pub mod generated {
wasmtime::component::bindgen!({
path: ["./wit"],
world: "wasm-sql:core/host",
imports: {
"wasm-sql:core/pool": async,
"wasm-sql:core/transaction": async,
"wasm-sql:core/connection": async,
"wasm-sql:core/query-types": trappable,
},
with: {
"wasm-sql:core/query-types.query-results": crate::core::bindings::query_results::QueryResultsImpl,
"wasm-sql:core/query-types.sql-arguments": crate::core::bindings::sql_arguments::SqlArgumentsImpl,
"wasm-sql:core/transaction.transaction": crate::core::bindings::transaction::TransactionImpl,
"wasm-sql:core/connection.connection": crate::core::bindings::connection::ConnectionImpl,
}
});
}
#[allow(unused)]
pub struct SqlHostState {
pub(crate) table: ResourceTable,
pub(crate) sql_db: Arc<SqlDB>,
}
impl SqlHostState {
pub fn new(db: Arc<SqlDB>) -> Self {
Self {
table: ResourceTable::new(),
sql_db: db,
}
}
}
impl HasData for SqlHostState {
type Data<'a>
= &'a mut SqlHostState
where
Self: 'a;
}
impl crate::core::bindings::generated::wasm_sql::core::util_types::Host for SqlHostState {}
impl crate::core::bindings::generated::wasm_sql::core::codecs::Host for SqlHostState {}
pub(crate) mod codec_utils;
pub(crate) mod connection;
pub(crate) mod error;
pub(crate) mod executor;
pub(crate) mod pool;
pub(crate) mod query;
pub(crate) mod query_results;
pub(crate) mod sql_arguments;
pub(crate) mod transaction;