// 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}; pub mod add_reducer; pub mod identity_connected_reducer; pub mod identity_disconnected_reducer; pub mod person_table; pub mod person_type; pub mod say_hello_reducer; pub use add_reducer::{add, set_flags_for_add, AddCallbackId}; pub use identity_connected_reducer::{ identity_connected, set_flags_for_identity_connected, IdentityConnectedCallbackId, }; pub use identity_disconnected_reducer::{ identity_disconnected, set_flags_for_identity_disconnected, IdentityDisconnectedCallbackId, }; pub use person_table::*; pub use person_type::Person; pub use say_hello_reducer::{say_hello, set_flags_for_say_hello, SayHelloCallbackId}; #[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 { Add { name: String }, IdentityConnected, IdentityDisconnected, SayHello, } impl __sdk::InModule for Reducer { type Module = RemoteModule; } impl __sdk::Reducer for Reducer { fn reducer_name(&self) -> &'static str { match self { Reducer::Add { .. } => "add", Reducer::IdentityConnected => "identity_connected", Reducer::IdentityDisconnected => "identity_disconnected", Reducer::SayHello => "say_hello", _ => unreachable!(), } } } impl TryFrom<__ws::ReducerCallInfo<__ws::BsatnFormat>> for Reducer { type Error = __sdk::Error; fn try_from(value: __ws::ReducerCallInfo<__ws::BsatnFormat>) -> __sdk::Result { match &value.reducer_name[..] { "add" => { Ok(__sdk::parse_reducer_args::("add", &value.args)?.into()) } "identity_connected" => Ok(__sdk::parse_reducer_args::< identity_connected_reducer::IdentityConnectedArgs, >("identity_connected", &value.args)? .into()), "identity_disconnected" => Ok(__sdk::parse_reducer_args::< identity_disconnected_reducer::IdentityDisconnectedArgs, >("identity_disconnected", &value.args)? .into()), "say_hello" => Ok( __sdk::parse_reducer_args::( "say_hello", &value.args, )? .into(), ), unknown => { Err( __sdk::InternalError::unknown_name("reducer", unknown, "ReducerCallInfo") .into(), ) } } } } #[derive(Default)] #[allow(non_snake_case)] #[doc(hidden)] pub struct DbUpdate { person: __sdk::TableUpdate, } impl TryFrom<__ws::DatabaseUpdate<__ws::BsatnFormat>> for DbUpdate { type Error = __sdk::Error; fn try_from(raw: __ws::DatabaseUpdate<__ws::BsatnFormat>) -> Result { let mut db_update = DbUpdate::default(); for table_update in raw.tables { match &table_update.table_name[..] { "person" => db_update .person .append(person_table::parse_table_update(table_update)?), 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, ) -> AppliedDiff<'_> { let mut diff = AppliedDiff::default(); diff.person = cache.apply_diff_to_table::("person", &self.person); diff } } #[derive(Default)] #[allow(non_snake_case)] #[doc(hidden)] pub struct AppliedDiff<'r> { person: __sdk::TableAppliedDiff<'r, Person>, __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, ) { callbacks.invoke_table_row_callbacks::("person", &self.person, event); } } #[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, } 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, } 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, } 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, } 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, } 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; 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 { __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 { 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) -> 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, } impl __sdk::InModule for SubscriptionHandle { type Module = RemoteModule; } impl __sdk::SubscriptionHandle for SubscriptionHandle { fn new(imp: __sdk::SubscriptionHandleImpl) -> 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) -> __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, > { } impl< Ctx: __sdk::DbContext< DbView = RemoteTables, Reducers = RemoteReducers, SetReducerFlags = SetReducerFlags, SubscriptionBuilder = __sdk::SubscriptionBuilder, >, > 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, imp: __sdk::DbContextImpl, } impl __sdk::AbstractEventContext for EventContext { type Event = __sdk::Event; fn event(&self) -> &Self::Event { &self.event } fn new(imp: __sdk::DbContextImpl, 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; 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, imp: __sdk::DbContextImpl, } impl __sdk::AbstractEventContext for ReducerEventContext { type Event = __sdk::ReducerEvent; fn event(&self) -> &Self::Event { &self.event } fn new(imp: __sdk::DbContextImpl, 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; 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, } impl __sdk::AbstractEventContext for ProcedureEventContext { type Event = (); fn event(&self) -> &Self::Event { &() } fn new(imp: __sdk::DbContextImpl, _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; 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, } impl __sdk::AbstractEventContext for SubscriptionEventContext { type Event = (); fn event(&self) -> &Self::Event { &() } fn new(imp: __sdk::DbContextImpl, _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; 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, } impl __sdk::AbstractEventContext for ErrorContext { type Event = Option<__sdk::Error>; fn event(&self) -> &Self::Event { &self.event } fn new(imp: __sdk::DbContextImpl, 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; 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) { person_table::register_table(client_cache); } }