wasm_sql/core/
bindings.rs1use std::sync::Arc;
2
3use wasmtime::component::{HasData, ResourceTable};
4
5use crate::sqldb::SqlDB;
6
7pub mod generated {
8 wasmtime::component::bindgen!({
9 path: ["./wit"],
10 world: "wasm-sql:core/host",
11 imports: {
12 "wasm-sql:core/pool": async,
13 "wasm-sql:core/transaction": async,
14 "wasm-sql:core/connection": async,
15 "wasm-sql:core/query-types": trappable,
16 },
17 with: {
18 "wasm-sql:core/query-types.query-results": crate::core::bindings::query_results::QueryResultsImpl,
19 "wasm-sql:core/query-types.sql-arguments": crate::core::bindings::sql_arguments::SqlArgumentsImpl,
20 "wasm-sql:core/transaction.transaction": crate::core::bindings::transaction::TransactionImpl,
21 "wasm-sql:core/connection.connection": crate::core::bindings::connection::ConnectionImpl,
22 }
23 });
24}
25
26#[allow(unused)]
27pub struct SqlHostState {
28 pub(crate) table: ResourceTable,
29 pub(crate) sql_db: Arc<SqlDB>,
30}
31
32impl SqlHostState {
33 pub fn new(db: Arc<SqlDB>) -> Self {
34 Self {
35 table: ResourceTable::new(),
36 sql_db: db,
37 }
38 }
39}
40
41impl HasData for SqlHostState {
42 type Data<'a>
43 = &'a mut SqlHostState
44 where
45 Self: 'a;
46}
47
48impl crate::core::bindings::generated::wasm_sql::core::util_types::Host for SqlHostState {}
49impl crate::core::bindings::generated::wasm_sql::core::codecs::Host for SqlHostState {}
50
51pub(crate) mod codec_utils;
52pub(crate) mod connection;
53pub(crate) mod error;
54pub(crate) mod executor;
55pub(crate) mod pool;
56pub(crate) mod query;
57pub(crate) mod query_results;
58pub(crate) mod sql_arguments;
59pub(crate) mod transaction;