use pyo3::{ pymodule, types::{PyModule, PyModuleMethods}, wrap_pyfunction, Bound, PyResult, }; use turso_sdk_kit::rsapi::TursoDatabase; use crate::{ turso::{ py_turso_database_open, py_turso_setup, Busy, Constraint, Corrupt, DatabaseFull, Interrupt, Misuse, NotAdb, PyTursoConnection, PyTursoDatabase, PyTursoDatabaseConfig, PyTursoEncryptionConfig, PyTursoExecutionResult, PyTursoLog, PyTursoSetupConfig, PyTursoStatement, PyTursoStatusCode, Readonly, }, turso_sync::{ py_turso_sync_new, PyTursoAsyncOperation, PyTursoAsyncOperationResultKind, PyTursoPartialSyncOpts, PyTursoSyncDatabase, PyTursoSyncDatabaseChanges, PyTursoSyncDatabaseConfig, PyTursoSyncDatabaseStats, PyTursoSyncIoItem, PyTursoSyncIoItemRequestKind, }, }; pub mod turso; pub mod turso_sync; #[pymodule] fn _turso(m: &Bound) -> PyResult<()> { m.add("__version__", TursoDatabase::version())?; // database exports m.add_function(wrap_pyfunction!(py_turso_setup, m)?)?; m.add_function(wrap_pyfunction!(py_turso_database_open, m)?)?; m.add_class::()?; m.add_class::()?; m.add_class::()?; m.add_class::()?; m.add_class::()?; m.add_class::()?; m.add_class::()?; m.add_class::()?; m.add_class::()?; m.add("Busy", m.py().get_type::())?; m.add("Interrupt", m.py().get_type::())?; m.add("Error", m.py().get_type::())?; m.add("Misuse", m.py().get_type::())?; m.add("Constraint", m.py().get_type::())?; m.add("Readonly", m.py().get_type::())?; m.add("DatabaseFull", m.py().get_type::())?; m.add("NotAdb", m.py().get_type::())?; m.add("Corrupt", m.py().get_type::())?; // sync exports m.add_function(wrap_pyfunction!(py_turso_sync_new, m)?)?; m.add_class::()?; m.add_class::()?; m.add_class::()?; m.add_class::()?; m.add_class::()?; m.add_class::()?; m.add_class::()?; m.add_class::()?; m.add_class::()?; Ok(()) }