state advancer reducer

This commit is contained in:
Tao Tien 2026-02-20 15:36:04 -08:00
parent c12667938e
commit e2c9c815ec
44 changed files with 2063 additions and 773 deletions

View file

@ -2,7 +2,13 @@
// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD.
#![allow(unused, clippy::all)]
use spacetimedb_sdk::__codegen::{self as __sdk, __lib, __sats, __ws};
use spacetimedb_sdk::__codegen::{
self as __sdk,
__lib,
__sats,
__ws,
};
#[derive(__lib::ser::Serialize, __lib::de::Deserialize, Clone, PartialEq, Debug)]
#[sats(crate = __lib)]
@ -14,8 +20,8 @@ impl From<AddBotArgs> for super::Reducer {
fn from(args: AddBotArgs) -> Self {
Self::AddBot {
lobby_id: args.lobby_id,
}
}
}
}
}
impl __sdk::InModule for AddBotArgs {
@ -34,7 +40,8 @@ pub trait add_bot {
/// This method returns immediately, and errors only if we are unable to send the request.
/// The reducer will run asynchronously in the future,
/// and its status can be observed by listening for [`Self::on_add_bot`] callbacks.
fn add_bot(&self, lobby_id: u32) -> __sdk::Result<()>;
fn add_bot(&self, lobby_id: u32,
) -> __sdk::Result<()>;
/// Register a callback to run whenever we are notified of an invocation of the reducer `add_bot`.
///
/// Callbacks should inspect the [`__sdk::ReducerEvent`] contained in the [`super::ReducerEventContext`]
@ -42,39 +49,35 @@ pub trait add_bot {
///
/// The returned [`AddBotCallbackId`] can be passed to [`Self::remove_on_add_bot`]
/// to cancel the callback.
fn on_add_bot(
&self,
callback: impl FnMut(&super::ReducerEventContext, &u32) + Send + 'static,
) -> AddBotCallbackId;
fn on_add_bot(&self, callback: impl FnMut(&super::ReducerEventContext, &u32, ) + Send + 'static) -> AddBotCallbackId;
/// Cancel a callback previously registered by [`Self::on_add_bot`],
/// causing it not to run in the future.
fn remove_on_add_bot(&self, callback: AddBotCallbackId);
}
impl add_bot for super::RemoteReducers {
fn add_bot(&self, lobby_id: u32) -> __sdk::Result<()> {
self.imp.call_reducer("add_bot", AddBotArgs { lobby_id })
fn add_bot(&self, lobby_id: u32,
) -> __sdk::Result<()> {
self.imp.call_reducer("add_bot", AddBotArgs { lobby_id, })
}
fn on_add_bot(
&self,
mut callback: impl FnMut(&super::ReducerEventContext, &u32) + Send + 'static,
mut callback: impl FnMut(&super::ReducerEventContext, &u32, ) + Send + 'static,
) -> AddBotCallbackId {
AddBotCallbackId(self.imp.on_reducer(
"add_bot",
Box::new(move |ctx: &super::ReducerEventContext| {
#[allow(irrefutable_let_patterns)]
let super::ReducerEventContext {
event:
__sdk::ReducerEvent {
reducer: super::Reducer::AddBot { lobby_id },
..
event: __sdk::ReducerEvent {
reducer: super::Reducer::AddBot {
lobby_id,
},
..
},
..
} = ctx
else {
unreachable!()
};
callback(ctx, lobby_id)
} = ctx else { unreachable!() };
callback(ctx, lobby_id, )
}),
))
}
@ -102,3 +105,4 @@ impl set_flags_for_add_bot for super::SetReducerFlags {
self.imp.set_call_reducer_flags("add_bot", flags);
}
}