// 中文注释:SpacetimeDB 绑定生成依赖根模块继续公开 re-export 各领域类型; // 少数领域 helper 同名只影响 value namespace 导出,不影响 table / reducer 类型。 #![allow(ambiguous_glob_reexports)] pub use module_ai::*; pub use module_assets::*; pub use module_runtime::*; pub(crate) use serde_json::{Map as JsonMap, Value as JsonValue, json}; pub use spacetimedb::{ Identity, ProcedureContext, ReducerContext, ScheduleAt, SpacetimeType, Table, Timestamp, }; mod admin_account_storage; mod admin_dashboard; #[path = "agc_models.rs"] mod agc_models; mod ai; mod asset_metadata; mod auth; #[path = "legacy_schema/bark_battle.rs"] mod bark_battle; #[path = "legacy_schema/big_fish.rs"] mod big_fish; #[path = "legacy_schema/custom_world.rs"] mod custom_world; mod editor_agent_storage; mod editor_project_storage; #[path = "error_report.rs"] mod error_reports_schema; mod external_api_key_storage; mod external_generation; #[path = "legacy_schema/gameplay.rs"] mod gameplay; #[path = "legacy_schema/jump_hop.rs"] mod jump_hop; #[path = "llm_router_account.rs"] mod llm_router_account_storage; pub use agc_models::*; #[path = "legacy_schema/match3d.rs"] mod match3d; mod migration; #[path = "legacy_schema/puzzle.rs"] mod puzzle; #[path = "legacy_schema/puzzle_clear.rs"] mod puzzle_clear; mod runtime; #[path = "legacy_schema/square_hole.rs"] mod square_hole; #[path = "legacy_schema/visual_novel.rs"] mod visual_novel; #[path = "legacy_schema/wooden_fish.rs"] mod wooden_fish; pub use admin_account_storage::*; pub use admin_dashboard::*; pub use ai::*; pub use asset_metadata::*; pub use auth::*; pub use bark_battle::*; pub use big_fish::*; pub use custom_world::*; pub use editor_agent_storage::*; pub use editor_project_storage::*; pub use error_reports_schema::*; pub use external_api_key_storage::*; pub use external_generation::*; pub use gameplay::*; pub use jump_hop::*; pub use llm_router_account_storage::*; pub use match3d::*; pub use migration::*; pub use puzzle_clear::*; pub use runtime::*; pub use square_hole::*; pub use visual_novel::*; pub use wooden_fish::*; // Host-side unit tests need to link the module crate as a normal test binary. // SpacetimeDB's raw ABI imports only exist in the WASM host, so provide // deterministic error-returning symbols for tests that exercise pure helpers. // Reducer/procedure integration tests must use a real SpacetimeDB runtime. #[cfg(all(test, not(target_arch = "wasm32")))] mod host_test_imports { type TableId = u32; type IndexId = u32; type ColId = u16; type BytesSource = u32; type BytesSink = u32; type RowIter = u32; const HOST_TEST_UNSUPPORTED: u16 = 1; #[unsafe(no_mangle)] pub extern "C" fn table_id_from_name(_: *const u8, _: usize, _: *mut TableId) -> u16 { HOST_TEST_UNSUPPORTED } #[unsafe(no_mangle)] pub extern "C" fn index_id_from_name(_: *const u8, _: usize, _: *mut IndexId) -> u16 { HOST_TEST_UNSUPPORTED } #[unsafe(no_mangle)] pub extern "C" fn datastore_table_row_count(_: TableId, _: *mut u64) -> u16 { HOST_TEST_UNSUPPORTED } #[unsafe(no_mangle)] pub extern "C" fn datastore_table_scan_bsatn(_: TableId, _: *mut RowIter) -> u16 { HOST_TEST_UNSUPPORTED } #[unsafe(no_mangle)] pub extern "C" fn datastore_index_scan_range_bsatn( _: IndexId, _: *const u8, _: usize, _: ColId, _: *const u8, _: usize, _: *const u8, _: usize, _: *mut RowIter, ) -> u16 { HOST_TEST_UNSUPPORTED } #[unsafe(no_mangle)] pub extern "C" fn datastore_delete_by_index_scan_range_bsatn( _: IndexId, _: *const u8, _: usize, _: ColId, _: *const u8, _: usize, _: *const u8, _: usize, _: *mut u32, ) -> u16 { HOST_TEST_UNSUPPORTED } #[unsafe(no_mangle)] pub extern "C" fn datastore_delete_all_by_eq_bsatn( _: TableId, _: *const u8, _: usize, _: *mut u32, ) -> u16 { HOST_TEST_UNSUPPORTED } #[unsafe(no_mangle)] pub extern "C" fn row_iter_bsatn_advance(_: RowIter, _: *mut u8, _: *mut usize) -> i16 { -1 } #[unsafe(no_mangle)] pub extern "C" fn row_iter_bsatn_close(_: RowIter) -> u16 { HOST_TEST_UNSUPPORTED } #[unsafe(no_mangle)] pub extern "C" fn datastore_insert_bsatn(_: TableId, _: *mut u8, _: *mut usize) -> u16 { HOST_TEST_UNSUPPORTED } #[unsafe(no_mangle)] pub extern "C" fn datastore_update_bsatn( _: TableId, _: IndexId, _: *mut u8, _: *mut usize, ) -> u16 { HOST_TEST_UNSUPPORTED } #[unsafe(no_mangle)] pub extern "C" fn bytes_sink_write(_: BytesSink, _: *const u8, _: *mut usize) -> u16 { HOST_TEST_UNSUPPORTED } #[unsafe(no_mangle)] pub extern "C" fn bytes_source_read(_: BytesSource, _: *mut u8, _: *mut usize) -> i16 { -1 } #[unsafe(no_mangle)] pub extern "C" fn console_log( _: u8, _: *const u8, _: usize, _: *const u8, _: usize, _: u32, _: *const u8, _: usize, ) { } #[unsafe(no_mangle)] pub extern "C" fn console_timer_start(_: *const u8, _: usize) -> u32 { 0 } #[unsafe(no_mangle)] pub extern "C" fn console_timer_end(_: u32) -> u16 { HOST_TEST_UNSUPPORTED } #[unsafe(no_mangle)] pub extern "C" fn identity(out: *mut u8) { if !out.is_null() { unsafe { std::ptr::write_bytes(out, 0, 32) }; } } #[unsafe(no_mangle)] pub extern "C" fn bytes_source_remaining_length(_: BytesSource, _: *mut u32) -> i16 { HOST_TEST_UNSUPPORTED as i16 } #[unsafe(no_mangle)] pub extern "C" fn get_jwt(_: *const u8, _: *mut BytesSource) -> u16 { HOST_TEST_UNSUPPORTED } #[unsafe(no_mangle)] pub extern "C" fn procedure_sleep_until(wake_at: i64) -> i64 { wake_at } #[unsafe(no_mangle)] pub extern "C" fn procedure_start_mut_tx(_: *mut i64) -> u16 { HOST_TEST_UNSUPPORTED } #[unsafe(no_mangle)] pub extern "C" fn procedure_commit_mut_tx() -> u16 { HOST_TEST_UNSUPPORTED } #[unsafe(no_mangle)] pub extern "C" fn procedure_abort_mut_tx() -> u16 { HOST_TEST_UNSUPPORTED } #[unsafe(no_mangle)] pub extern "C" fn datastore_index_scan_point_bsatn( _: IndexId, _: *const u8, _: usize, _: *mut RowIter, ) -> u16 { HOST_TEST_UNSUPPORTED } #[unsafe(no_mangle)] pub extern "C" fn datastore_delete_by_index_scan_point_bsatn( _: IndexId, _: *const u8, _: usize, _: *mut u32, ) -> u16 { HOST_TEST_UNSUPPORTED } #[unsafe(no_mangle)] pub extern "C" fn datastore_clear(_: TableId, _: *mut u64) -> u16 { HOST_TEST_UNSUPPORTED } }