2026-02-06 23:51:08 -08:00
// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE
// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD.
// This was generated using spacetimedb cli version 1.11.3 (commit 02449737ca3b29e7e39679fccbef541a50f32094).
#![ allow(unused, clippy::all) ]
use spacetimedb_sdk ::__codegen ::{ self as __sdk , __lib , __sats , __ws } ;
2026-02-07 17:46:03 -08:00
pub mod add_player_reducer ;
pub mod dragon_type ;
pub mod hand_table ;
pub mod hand_type ;
pub mod player_table ;
pub mod player_type ;
pub mod rank_type ;
pub mod set_name_reducer ;
pub mod shuffle_wall_reducer ;
pub mod sort_hand_reducer ;
pub mod suit_type ;
pub mod tile_type ;
pub mod wall_table ;
pub mod wall_type ;
pub mod wind_type ;
pub use add_player_reducer ::{ add_player , set_flags_for_add_player , AddPlayerCallbackId } ;
pub use dragon_type ::Dragon ;
pub use hand_table ::* ;
pub use hand_type ::Hand ;
pub use player_table ::* ;
pub use player_type ::Player ;
pub use rank_type ::Rank ;
pub use set_name_reducer ::{ set_flags_for_set_name , set_name , SetNameCallbackId } ;
pub use shuffle_wall_reducer ::{ set_flags_for_shuffle_wall , shuffle_wall , ShuffleWallCallbackId } ;
pub use sort_hand_reducer ::{ set_flags_for_sort_hand , sort_hand , SortHandCallbackId } ;
pub use suit_type ::Suit ;
pub use tile_type ::Tile ;
pub use wall_table ::* ;
pub use wall_type ::Wall ;
pub use wind_type ::Wind ;
2026-02-06 23:51:08 -08:00
#[ derive(Clone, PartialEq, Debug) ]
/// One of the reducers defined by this module.
///
/// Contained within a [`__sdk::ReducerEvent`] in [`EventContext`]s for reducer events
/// to indicate which reducer caused the event.
pub enum Reducer {
2026-02-07 17:46:03 -08:00
AddPlayer { name : Option < String > } ,
SetName { name : String } ,
ShuffleWall ,
SortHand ,
2026-02-06 23:51:08 -08:00
}
impl __sdk ::InModule for Reducer {
type Module = RemoteModule ;
}
impl __sdk ::Reducer for Reducer {
fn reducer_name ( & self ) -> & 'static str {
match self {
2026-02-07 17:46:03 -08:00
Reducer ::AddPlayer { .. } = > " add_player " ,
Reducer ::SetName { .. } = > " set_name " ,
Reducer ::ShuffleWall = > " shuffle_wall " ,
Reducer ::SortHand = > " sort_hand " ,
2026-02-06 23:51:08 -08:00
_ = > unreachable! ( ) ,
}
}
}
impl TryFrom < __ws ::ReducerCallInfo < __ws ::BsatnFormat > > for Reducer {
type Error = __sdk ::Error ;
fn try_from ( value : __ws ::ReducerCallInfo < __ws ::BsatnFormat > ) -> __sdk ::Result < Self > {
match & value . reducer_name [ .. ] {
2026-02-07 17:46:03 -08:00
" add_player " = > Ok (
__sdk ::parse_reducer_args ::< add_player_reducer ::AddPlayerArgs > (
" add_player " ,
& value . args ,
) ?
. into ( ) ,
) ,
" set_name " = > Ok ( __sdk ::parse_reducer_args ::< set_name_reducer ::SetNameArgs > (
" set_name " ,
& value . args ,
) ?
2026-02-06 23:51:08 -08:00
. into ( ) ) ,
2026-02-07 17:46:03 -08:00
" shuffle_wall " = > Ok (
__sdk ::parse_reducer_args ::< shuffle_wall_reducer ::ShuffleWallArgs > (
" shuffle_wall " ,
& value . args ,
) ?
. into ( ) ,
) ,
" sort_hand " = > Ok (
__sdk ::parse_reducer_args ::< sort_hand_reducer ::SortHandArgs > (
" sort_hand " ,
2026-02-06 23:51:08 -08:00
& value . args ,
) ?
. into ( ) ,
) ,
unknown = > {
Err (
__sdk ::InternalError ::unknown_name ( " reducer " , unknown , " ReducerCallInfo " )
. into ( ) ,
)
}
}
}
}
#[ derive(Default) ]
#[ allow(non_snake_case) ]
#[ doc(hidden) ]
pub struct DbUpdate {
2026-02-07 17:46:03 -08:00
hand : __sdk ::TableUpdate < Hand > ,
player : __sdk ::TableUpdate < Player > ,
wall : __sdk ::TableUpdate < Wall > ,
2026-02-06 23:51:08 -08:00
}
impl TryFrom < __ws ::DatabaseUpdate < __ws ::BsatnFormat > > for DbUpdate {
type Error = __sdk ::Error ;
fn try_from ( raw : __ws ::DatabaseUpdate < __ws ::BsatnFormat > ) -> Result < Self , Self ::Error > {
let mut db_update = DbUpdate ::default ( ) ;
for table_update in raw . tables {
match & table_update . table_name [ .. ] {
2026-02-07 17:46:03 -08:00
" hand " = > db_update
. hand
. append ( hand_table ::parse_table_update ( table_update ) ? ) ,
" player " = > db_update
. player
. append ( player_table ::parse_table_update ( table_update ) ? ) ,
" wall " = > db_update
. wall
. append ( wall_table ::parse_table_update ( table_update ) ? ) ,
2026-02-06 23:51:08 -08:00
unknown = > {
return Err ( __sdk ::InternalError ::unknown_name (
" table " ,
unknown ,
" DatabaseUpdate " ,
)
. into ( ) ) ;
}
}
}
Ok ( db_update )
}
}
impl __sdk ::InModule for DbUpdate {
type Module = RemoteModule ;
}
impl __sdk ::DbUpdate for DbUpdate {
fn apply_to_client_cache (
& self ,
cache : & mut __sdk ::ClientCache < RemoteModule > ,
) -> AppliedDiff < '_ > {
let mut diff = AppliedDiff ::default ( ) ;
2026-02-07 17:46:03 -08:00
diff . hand = cache . apply_diff_to_table ::< Hand > ( " hand " , & self . hand ) ;
diff . player = cache
. apply_diff_to_table ::< Player > ( " player " , & self . player )
. with_updates_by_pk ( | row | & row . identity ) ;
diff . wall = cache . apply_diff_to_table ::< Wall > ( " wall " , & self . wall ) ;
2026-02-06 23:51:08 -08:00
diff
}
}
#[ derive(Default) ]
#[ allow(non_snake_case) ]
#[ doc(hidden) ]
pub struct AppliedDiff < ' r > {
2026-02-07 17:46:03 -08:00
hand : __sdk ::TableAppliedDiff < ' r , Hand > ,
player : __sdk ::TableAppliedDiff < ' r , Player > ,
wall : __sdk ::TableAppliedDiff < ' r , Wall > ,
2026-02-06 23:51:08 -08:00
__unused : std ::marker ::PhantomData < & ' r ( ) > ,
}
impl __sdk ::InModule for AppliedDiff < '_ > {
type Module = RemoteModule ;
}
impl < ' r > __sdk ::AppliedDiff < ' r > for AppliedDiff < ' r > {
fn invoke_row_callbacks (
& self ,
event : & EventContext ,
callbacks : & mut __sdk ::DbCallbacks < RemoteModule > ,
) {
2026-02-07 17:46:03 -08:00
callbacks . invoke_table_row_callbacks ::< Hand > ( " hand " , & self . hand , event ) ;
callbacks . invoke_table_row_callbacks ::< Player > ( " player " , & self . player , event ) ;
callbacks . invoke_table_row_callbacks ::< Wall > ( " wall " , & self . wall , event ) ;
2026-02-06 23:51:08 -08:00
}
}
#[ doc(hidden) ]
pub struct RemoteModule ;
impl __sdk ::InModule for RemoteModule {
type Module = Self ;
}
/// The `reducers` field of [`EventContext`] and [`DbConnection`],
/// with methods provided by extension traits for each reducer defined by the module.
pub struct RemoteReducers {
imp : __sdk ::DbContextImpl < RemoteModule > ,
}
impl __sdk ::InModule for RemoteReducers {
type Module = RemoteModule ;
}
/// The `procedures` field of [`DbConnection`] and other [`DbContext`] types,
/// with methods provided by extension traits for each procedure defined by the module.
pub struct RemoteProcedures {
imp : __sdk ::DbContextImpl < RemoteModule > ,
}
impl __sdk ::InModule for RemoteProcedures {
type Module = RemoteModule ;
}
#[ doc(hidden) ]
/// The `set_reducer_flags` field of [`DbConnection`],
/// with methods provided by extension traits for each reducer defined by the module.
/// Each method sets the flags for the reducer with the same name.
///
/// This type is currently unstable and may be removed without a major version bump.
pub struct SetReducerFlags {
imp : __sdk ::DbContextImpl < RemoteModule > ,
}
impl __sdk ::InModule for SetReducerFlags {
type Module = RemoteModule ;
}
/// The `db` field of [`EventContext`] and [`DbConnection`],
/// with methods provided by extension traits for each table defined by the module.
pub struct RemoteTables {
imp : __sdk ::DbContextImpl < RemoteModule > ,
}
impl __sdk ::InModule for RemoteTables {
type Module = RemoteModule ;
}
/// A connection to a remote module, including a materialized view of a subset of the database.
///
/// Connect to a remote module by calling [`DbConnection::builder`]
/// and using the [`__sdk::DbConnectionBuilder`] builder-pattern constructor.
///
/// You must explicitly advance the connection by calling any one of:
///
/// - [`DbConnection::frame_tick`].
/// - [`DbConnection::run_threaded`].
/// - [`DbConnection::run_async`].
/// - [`DbConnection::advance_one_message`].
/// - [`DbConnection::advance_one_message_blocking`].
/// - [`DbConnection::advance_one_message_async`].
///
/// Which of these methods you should call depends on the specific needs of your application,
/// but you must call one of them, or else the connection will never progress.
pub struct DbConnection {
/// Access to tables defined by the module via extension traits implemented for [`RemoteTables`].
pub db : RemoteTables ,
/// Access to reducers defined by the module via extension traits implemented for [`RemoteReducers`].
pub reducers : RemoteReducers ,
#[ doc(hidden) ]
/// Access to setting the call-flags of each reducer defined for each reducer defined by the module
/// via extension traits implemented for [`SetReducerFlags`].
///
/// This type is currently unstable and may be removed without a major version bump.
pub set_reducer_flags : SetReducerFlags ,
/// Access to procedures defined by the module via extension traits implemented for [`RemoteProcedures`].
pub procedures : RemoteProcedures ,
imp : __sdk ::DbContextImpl < RemoteModule > ,
}
impl __sdk ::InModule for DbConnection {
type Module = RemoteModule ;
}
impl __sdk ::DbContext for DbConnection {
type DbView = RemoteTables ;
type Reducers = RemoteReducers ;
type Procedures = RemoteProcedures ;
type SetReducerFlags = SetReducerFlags ;
fn db ( & self ) -> & Self ::DbView {
& self . db
}
fn reducers ( & self ) -> & Self ::Reducers {
& self . reducers
}
fn procedures ( & self ) -> & Self ::Procedures {
& self . procedures
}
fn set_reducer_flags ( & self ) -> & Self ::SetReducerFlags {
& self . set_reducer_flags
}
fn is_active ( & self ) -> bool {
self . imp . is_active ( )
}
fn disconnect ( & self ) -> __sdk ::Result < ( ) > {
self . imp . disconnect ( )
}
type SubscriptionBuilder = __sdk ::SubscriptionBuilder < RemoteModule > ;
fn subscription_builder ( & self ) -> Self ::SubscriptionBuilder {
__sdk ::SubscriptionBuilder ::new ( & self . imp )
}
fn try_identity ( & self ) -> Option < __sdk ::Identity > {
self . imp . try_identity ( )
}
fn connection_id ( & self ) -> __sdk ::ConnectionId {
self . imp . connection_id ( )
}
fn try_connection_id ( & self ) -> Option < __sdk ::ConnectionId > {
self . imp . try_connection_id ( )
}
}
impl DbConnection {
/// Builder-pattern constructor for a connection to a remote module.
///
/// See [`__sdk::DbConnectionBuilder`] for required and optional configuration for the new connection.
pub fn builder ( ) -> __sdk ::DbConnectionBuilder < RemoteModule > {
__sdk ::DbConnectionBuilder ::new ( )
}
/// If any WebSocket messages are waiting, process one of them.
///
/// Returns `true` if a message was processed, or `false` if the queue is empty.
/// Callers should invoke this message in a loop until it returns `false`
/// or for as much time is available to process messages.
///
/// Returns an error if the connection is disconnected.
/// If the disconnection in question was normal,
/// i.e. the result of a call to [`__sdk::DbContext::disconnect`],
/// the returned error will be downcastable to [`__sdk::DisconnectedError`].
///
/// This is a low-level primitive exposed for power users who need significant control over scheduling.
/// Most applications should call [`Self::frame_tick`] each frame
/// to fully exhaust the queue whenever time is available.
pub fn advance_one_message ( & self ) -> __sdk ::Result < bool > {
self . imp . advance_one_message ( )
}
/// Process one WebSocket message, potentially blocking the current thread until one is received.
///
/// Returns an error if the connection is disconnected.
/// If the disconnection in question was normal,
/// i.e. the result of a call to [`__sdk::DbContext::disconnect`],
/// the returned error will be downcastable to [`__sdk::DisconnectedError`].
///
/// This is a low-level primitive exposed for power users who need significant control over scheduling.
/// Most applications should call [`Self::run_threaded`] to spawn a thread
/// which advances the connection automatically.
pub fn advance_one_message_blocking ( & self ) -> __sdk ::Result < ( ) > {
self . imp . advance_one_message_blocking ( )
}
/// Process one WebSocket message, `await`ing until one is received.
///
/// Returns an error if the connection is disconnected.
/// If the disconnection in question was normal,
/// i.e. the result of a call to [`__sdk::DbContext::disconnect`],
/// the returned error will be downcastable to [`__sdk::DisconnectedError`].
///
/// This is a low-level primitive exposed for power users who need significant control over scheduling.
/// Most applications should call [`Self::run_async`] to run an `async` loop
/// which advances the connection when polled.
pub async fn advance_one_message_async ( & self ) -> __sdk ::Result < ( ) > {
self . imp . advance_one_message_async ( ) . await
}
/// Process all WebSocket messages waiting in the queue,
/// then return without `await`ing or blocking the current thread.
pub fn frame_tick ( & self ) -> __sdk ::Result < ( ) > {
self . imp . frame_tick ( )
}
/// Spawn a thread which processes WebSocket messages as they are received.
pub fn run_threaded ( & self ) -> std ::thread ::JoinHandle < ( ) > {
self . imp . run_threaded ( )
}
/// Run an `async` loop which processes WebSocket messages when polled.
pub async fn run_async ( & self ) -> __sdk ::Result < ( ) > {
self . imp . run_async ( ) . await
}
}
impl __sdk ::DbConnection for DbConnection {
fn new ( imp : __sdk ::DbContextImpl < RemoteModule > ) -> Self {
Self {
db : RemoteTables { imp : imp . clone ( ) } ,
reducers : RemoteReducers { imp : imp . clone ( ) } ,
procedures : RemoteProcedures { imp : imp . clone ( ) } ,
set_reducer_flags : SetReducerFlags { imp : imp . clone ( ) } ,
imp ,
}
}
}
/// A handle on a subscribed query.
// TODO: Document this better after implementing the new subscription API.
#[ derive(Clone) ]
pub struct SubscriptionHandle {
imp : __sdk ::SubscriptionHandleImpl < RemoteModule > ,
}
impl __sdk ::InModule for SubscriptionHandle {
type Module = RemoteModule ;
}
impl __sdk ::SubscriptionHandle for SubscriptionHandle {
fn new ( imp : __sdk ::SubscriptionHandleImpl < RemoteModule > ) -> Self {
Self { imp }
}
/// Returns true if this subscription has been terminated due to an unsubscribe call or an error.
fn is_ended ( & self ) -> bool {
self . imp . is_ended ( )
}
/// Returns true if this subscription has been applied and has not yet been unsubscribed.
fn is_active ( & self ) -> bool {
self . imp . is_active ( )
}
/// Unsubscribe from the query controlled by this `SubscriptionHandle`,
/// then run `on_end` when its rows are removed from the client cache.
fn unsubscribe_then ( self , on_end : __sdk ::OnEndedCallback < RemoteModule > ) -> __sdk ::Result < ( ) > {
self . imp . unsubscribe_then ( Some ( on_end ) )
}
fn unsubscribe ( self ) -> __sdk ::Result < ( ) > {
self . imp . unsubscribe_then ( None )
}
}
/// Alias trait for a [`__sdk::DbContext`] connected to this module,
/// with that trait's associated types bounded to this module's concrete types.
///
/// Users can use this trait as a boundary on definitions which should accept
/// either a [`DbConnection`] or an [`EventContext`] and operate on either.
pub trait RemoteDbContext :
__sdk ::DbContext <
DbView = RemoteTables ,
Reducers = RemoteReducers ,
SetReducerFlags = SetReducerFlags ,
SubscriptionBuilder = __sdk ::SubscriptionBuilder < RemoteModule > ,
>
{
}
impl <
Ctx : __sdk ::DbContext <
DbView = RemoteTables ,
Reducers = RemoteReducers ,
SetReducerFlags = SetReducerFlags ,
SubscriptionBuilder = __sdk ::SubscriptionBuilder < RemoteModule > ,
> ,
> RemoteDbContext for Ctx
{
}
/// An [`__sdk::DbContext`] augmented with a [`__sdk::Event`],
/// passed to [`__sdk::Table::on_insert`], [`__sdk::Table::on_delete`] and [`__sdk::TableWithPrimaryKey::on_update`] callbacks.
pub struct EventContext {
/// Access to tables defined by the module via extension traits implemented for [`RemoteTables`].
pub db : RemoteTables ,
/// Access to reducers defined by the module via extension traits implemented for [`RemoteReducers`].
pub reducers : RemoteReducers ,
/// Access to setting the call-flags of each reducer defined for each reducer defined by the module
/// via extension traits implemented for [`SetReducerFlags`].
///
/// This type is currently unstable and may be removed without a major version bump.
pub set_reducer_flags : SetReducerFlags ,
/// Access to procedures defined by the module via extension traits implemented for [`RemoteProcedures`].
pub procedures : RemoteProcedures ,
/// The event which caused these callbacks to run.
pub event : __sdk ::Event < Reducer > ,
imp : __sdk ::DbContextImpl < RemoteModule > ,
}
impl __sdk ::AbstractEventContext for EventContext {
type Event = __sdk ::Event < Reducer > ;
fn event ( & self ) -> & Self ::Event {
& self . event
}
fn new ( imp : __sdk ::DbContextImpl < RemoteModule > , event : Self ::Event ) -> Self {
Self {
db : RemoteTables { imp : imp . clone ( ) } ,
reducers : RemoteReducers { imp : imp . clone ( ) } ,
set_reducer_flags : SetReducerFlags { imp : imp . clone ( ) } ,
procedures : RemoteProcedures { imp : imp . clone ( ) } ,
event ,
imp ,
}
}
}
impl __sdk ::InModule for EventContext {
type Module = RemoteModule ;
}
impl __sdk ::DbContext for EventContext {
type DbView = RemoteTables ;
type Reducers = RemoteReducers ;
type Procedures = RemoteProcedures ;
type SetReducerFlags = SetReducerFlags ;
fn db ( & self ) -> & Self ::DbView {
& self . db
}
fn reducers ( & self ) -> & Self ::Reducers {
& self . reducers
}
fn procedures ( & self ) -> & Self ::Procedures {
& self . procedures
}
fn set_reducer_flags ( & self ) -> & Self ::SetReducerFlags {
& self . set_reducer_flags
}
fn is_active ( & self ) -> bool {
self . imp . is_active ( )
}
fn disconnect ( & self ) -> __sdk ::Result < ( ) > {
self . imp . disconnect ( )
}
type SubscriptionBuilder = __sdk ::SubscriptionBuilder < RemoteModule > ;
fn subscription_builder ( & self ) -> Self ::SubscriptionBuilder {
__sdk ::SubscriptionBuilder ::new ( & self . imp )
}
fn try_identity ( & self ) -> Option < __sdk ::Identity > {
self . imp . try_identity ( )
}
fn connection_id ( & self ) -> __sdk ::ConnectionId {
self . imp . connection_id ( )
}
fn try_connection_id ( & self ) -> Option < __sdk ::ConnectionId > {
self . imp . try_connection_id ( )
}
}
impl __sdk ::EventContext for EventContext { }
/// An [`__sdk::DbContext`] augmented with a [`__sdk::ReducerEvent`],
/// passed to on-reducer callbacks.
pub struct ReducerEventContext {
/// Access to tables defined by the module via extension traits implemented for [`RemoteTables`].
pub db : RemoteTables ,
/// Access to reducers defined by the module via extension traits implemented for [`RemoteReducers`].
pub reducers : RemoteReducers ,
/// Access to setting the call-flags of each reducer defined for each reducer defined by the module
/// via extension traits implemented for [`SetReducerFlags`].
///
/// This type is currently unstable and may be removed without a major version bump.
pub set_reducer_flags : SetReducerFlags ,
/// Access to procedures defined by the module via extension traits implemented for [`RemoteProcedures`].
pub procedures : RemoteProcedures ,
/// The event which caused these callbacks to run.
pub event : __sdk ::ReducerEvent < Reducer > ,
imp : __sdk ::DbContextImpl < RemoteModule > ,
}
impl __sdk ::AbstractEventContext for ReducerEventContext {
type Event = __sdk ::ReducerEvent < Reducer > ;
fn event ( & self ) -> & Self ::Event {
& self . event
}
fn new ( imp : __sdk ::DbContextImpl < RemoteModule > , event : Self ::Event ) -> Self {
Self {
db : RemoteTables { imp : imp . clone ( ) } ,
reducers : RemoteReducers { imp : imp . clone ( ) } ,
set_reducer_flags : SetReducerFlags { imp : imp . clone ( ) } ,
procedures : RemoteProcedures { imp : imp . clone ( ) } ,
event ,
imp ,
}
}
}
impl __sdk ::InModule for ReducerEventContext {
type Module = RemoteModule ;
}
impl __sdk ::DbContext for ReducerEventContext {
type DbView = RemoteTables ;
type Reducers = RemoteReducers ;
type Procedures = RemoteProcedures ;
type SetReducerFlags = SetReducerFlags ;
fn db ( & self ) -> & Self ::DbView {
& self . db
}
fn reducers ( & self ) -> & Self ::Reducers {
& self . reducers
}
fn procedures ( & self ) -> & Self ::Procedures {
& self . procedures
}
fn set_reducer_flags ( & self ) -> & Self ::SetReducerFlags {
& self . set_reducer_flags
}
fn is_active ( & self ) -> bool {
self . imp . is_active ( )
}
fn disconnect ( & self ) -> __sdk ::Result < ( ) > {
self . imp . disconnect ( )
}
type SubscriptionBuilder = __sdk ::SubscriptionBuilder < RemoteModule > ;
fn subscription_builder ( & self ) -> Self ::SubscriptionBuilder {
__sdk ::SubscriptionBuilder ::new ( & self . imp )
}
fn try_identity ( & self ) -> Option < __sdk ::Identity > {
self . imp . try_identity ( )
}
fn connection_id ( & self ) -> __sdk ::ConnectionId {
self . imp . connection_id ( )
}
fn try_connection_id ( & self ) -> Option < __sdk ::ConnectionId > {
self . imp . try_connection_id ( )
}
}
impl __sdk ::ReducerEventContext for ReducerEventContext { }
/// An [`__sdk::DbContext`] passed to procedure callbacks.
pub struct ProcedureEventContext {
/// Access to tables defined by the module via extension traits implemented for [`RemoteTables`].
pub db : RemoteTables ,
/// Access to reducers defined by the module via extension traits implemented for [`RemoteReducers`].
pub reducers : RemoteReducers ,
/// Access to setting the call-flags of each reducer defined for each reducer defined by the module
/// via extension traits implemented for [`SetReducerFlags`].
///
/// This type is currently unstable and may be removed without a major version bump.
pub set_reducer_flags : SetReducerFlags ,
/// Access to procedures defined by the module via extension traits implemented for [`RemoteProcedures`].
pub procedures : RemoteProcedures ,
imp : __sdk ::DbContextImpl < RemoteModule > ,
}
impl __sdk ::AbstractEventContext for ProcedureEventContext {
type Event = ( ) ;
fn event ( & self ) -> & Self ::Event {
& ( )
}
fn new ( imp : __sdk ::DbContextImpl < RemoteModule > , _event : Self ::Event ) -> Self {
Self {
db : RemoteTables { imp : imp . clone ( ) } ,
reducers : RemoteReducers { imp : imp . clone ( ) } ,
procedures : RemoteProcedures { imp : imp . clone ( ) } ,
set_reducer_flags : SetReducerFlags { imp : imp . clone ( ) } ,
imp ,
}
}
}
impl __sdk ::InModule for ProcedureEventContext {
type Module = RemoteModule ;
}
impl __sdk ::DbContext for ProcedureEventContext {
type DbView = RemoteTables ;
type Reducers = RemoteReducers ;
type Procedures = RemoteProcedures ;
type SetReducerFlags = SetReducerFlags ;
fn db ( & self ) -> & Self ::DbView {
& self . db
}
fn reducers ( & self ) -> & Self ::Reducers {
& self . reducers
}
fn procedures ( & self ) -> & Self ::Procedures {
& self . procedures
}
fn set_reducer_flags ( & self ) -> & Self ::SetReducerFlags {
& self . set_reducer_flags
}
fn is_active ( & self ) -> bool {
self . imp . is_active ( )
}
fn disconnect ( & self ) -> __sdk ::Result < ( ) > {
self . imp . disconnect ( )
}
type SubscriptionBuilder = __sdk ::SubscriptionBuilder < RemoteModule > ;
fn subscription_builder ( & self ) -> Self ::SubscriptionBuilder {
__sdk ::SubscriptionBuilder ::new ( & self . imp )
}
fn try_identity ( & self ) -> Option < __sdk ::Identity > {
self . imp . try_identity ( )
}
fn connection_id ( & self ) -> __sdk ::ConnectionId {
self . imp . connection_id ( )
}
fn try_connection_id ( & self ) -> Option < __sdk ::ConnectionId > {
self . imp . try_connection_id ( )
}
}
impl __sdk ::ProcedureEventContext for ProcedureEventContext { }
/// An [`__sdk::DbContext`] passed to [`__sdk::SubscriptionBuilder::on_applied`] and [`SubscriptionHandle::unsubscribe_then`] callbacks.
pub struct SubscriptionEventContext {
/// Access to tables defined by the module via extension traits implemented for [`RemoteTables`].
pub db : RemoteTables ,
/// Access to reducers defined by the module via extension traits implemented for [`RemoteReducers`].
pub reducers : RemoteReducers ,
/// Access to setting the call-flags of each reducer defined for each reducer defined by the module
/// via extension traits implemented for [`SetReducerFlags`].
///
/// This type is currently unstable and may be removed without a major version bump.
pub set_reducer_flags : SetReducerFlags ,
/// Access to procedures defined by the module via extension traits implemented for [`RemoteProcedures`].
pub procedures : RemoteProcedures ,
imp : __sdk ::DbContextImpl < RemoteModule > ,
}
impl __sdk ::AbstractEventContext for SubscriptionEventContext {
type Event = ( ) ;
fn event ( & self ) -> & Self ::Event {
& ( )
}
fn new ( imp : __sdk ::DbContextImpl < RemoteModule > , _event : Self ::Event ) -> Self {
Self {
db : RemoteTables { imp : imp . clone ( ) } ,
reducers : RemoteReducers { imp : imp . clone ( ) } ,
procedures : RemoteProcedures { imp : imp . clone ( ) } ,
set_reducer_flags : SetReducerFlags { imp : imp . clone ( ) } ,
imp ,
}
}
}
impl __sdk ::InModule for SubscriptionEventContext {
type Module = RemoteModule ;
}
impl __sdk ::DbContext for SubscriptionEventContext {
type DbView = RemoteTables ;
type Reducers = RemoteReducers ;
type Procedures = RemoteProcedures ;
type SetReducerFlags = SetReducerFlags ;
fn db ( & self ) -> & Self ::DbView {
& self . db
}
fn reducers ( & self ) -> & Self ::Reducers {
& self . reducers
}
fn procedures ( & self ) -> & Self ::Procedures {
& self . procedures
}
fn set_reducer_flags ( & self ) -> & Self ::SetReducerFlags {
& self . set_reducer_flags
}
fn is_active ( & self ) -> bool {
self . imp . is_active ( )
}
fn disconnect ( & self ) -> __sdk ::Result < ( ) > {
self . imp . disconnect ( )
}
type SubscriptionBuilder = __sdk ::SubscriptionBuilder < RemoteModule > ;
fn subscription_builder ( & self ) -> Self ::SubscriptionBuilder {
__sdk ::SubscriptionBuilder ::new ( & self . imp )
}
fn try_identity ( & self ) -> Option < __sdk ::Identity > {
self . imp . try_identity ( )
}
fn connection_id ( & self ) -> __sdk ::ConnectionId {
self . imp . connection_id ( )
}
fn try_connection_id ( & self ) -> Option < __sdk ::ConnectionId > {
self . imp . try_connection_id ( )
}
}
impl __sdk ::SubscriptionEventContext for SubscriptionEventContext { }
/// An [`__sdk::DbContext`] augmented with a [`__sdk::Error`],
/// passed to [`__sdk::DbConnectionBuilder::on_disconnect`], [`__sdk::DbConnectionBuilder::on_connect_error`] and [`__sdk::SubscriptionBuilder::on_error`] callbacks.
pub struct ErrorContext {
/// Access to tables defined by the module via extension traits implemented for [`RemoteTables`].
pub db : RemoteTables ,
/// Access to reducers defined by the module via extension traits implemented for [`RemoteReducers`].
pub reducers : RemoteReducers ,
/// Access to setting the call-flags of each reducer defined for each reducer defined by the module
/// via extension traits implemented for [`SetReducerFlags`].
///
/// This type is currently unstable and may be removed without a major version bump.
pub set_reducer_flags : SetReducerFlags ,
/// Access to procedures defined by the module via extension traits implemented for [`RemoteProcedures`].
pub procedures : RemoteProcedures ,
/// The event which caused these callbacks to run.
pub event : Option < __sdk ::Error > ,
imp : __sdk ::DbContextImpl < RemoteModule > ,
}
impl __sdk ::AbstractEventContext for ErrorContext {
type Event = Option < __sdk ::Error > ;
fn event ( & self ) -> & Self ::Event {
& self . event
}
fn new ( imp : __sdk ::DbContextImpl < RemoteModule > , event : Self ::Event ) -> Self {
Self {
db : RemoteTables { imp : imp . clone ( ) } ,
reducers : RemoteReducers { imp : imp . clone ( ) } ,
set_reducer_flags : SetReducerFlags { imp : imp . clone ( ) } ,
procedures : RemoteProcedures { imp : imp . clone ( ) } ,
event ,
imp ,
}
}
}
impl __sdk ::InModule for ErrorContext {
type Module = RemoteModule ;
}
impl __sdk ::DbContext for ErrorContext {
type DbView = RemoteTables ;
type Reducers = RemoteReducers ;
type Procedures = RemoteProcedures ;
type SetReducerFlags = SetReducerFlags ;
fn db ( & self ) -> & Self ::DbView {
& self . db
}
fn reducers ( & self ) -> & Self ::Reducers {
& self . reducers
}
fn procedures ( & self ) -> & Self ::Procedures {
& self . procedures
}
fn set_reducer_flags ( & self ) -> & Self ::SetReducerFlags {
& self . set_reducer_flags
}
fn is_active ( & self ) -> bool {
self . imp . is_active ( )
}
fn disconnect ( & self ) -> __sdk ::Result < ( ) > {
self . imp . disconnect ( )
}
type SubscriptionBuilder = __sdk ::SubscriptionBuilder < RemoteModule > ;
fn subscription_builder ( & self ) -> Self ::SubscriptionBuilder {
__sdk ::SubscriptionBuilder ::new ( & self . imp )
}
fn try_identity ( & self ) -> Option < __sdk ::Identity > {
self . imp . try_identity ( )
}
fn connection_id ( & self ) -> __sdk ::ConnectionId {
self . imp . connection_id ( )
}
fn try_connection_id ( & self ) -> Option < __sdk ::ConnectionId > {
self . imp . try_connection_id ( )
}
}
impl __sdk ::ErrorContext for ErrorContext { }
impl __sdk ::SpacetimeModule for RemoteModule {
type DbConnection = DbConnection ;
type EventContext = EventContext ;
type ReducerEventContext = ReducerEventContext ;
type ProcedureEventContext = ProcedureEventContext ;
type SubscriptionEventContext = SubscriptionEventContext ;
type ErrorContext = ErrorContext ;
type Reducer = Reducer ;
type DbView = RemoteTables ;
type Reducers = RemoteReducers ;
type SetReducerFlags = SetReducerFlags ;
type DbUpdate = DbUpdate ;
type AppliedDiff < ' r > = AppliedDiff < ' r > ;
type SubscriptionHandle = SubscriptionHandle ;
fn register_tables ( client_cache : & mut __sdk ::ClientCache < Self > ) {
2026-02-07 17:46:03 -08:00
hand_table ::register_table ( client_cache ) ;
player_table ::register_table ( client_cache ) ;
wall_table ::register_table ( client_cache ) ;
2026-02-06 23:51:08 -08:00
}
}