spacetimedb/messages/
control_worker_api.rs1use spacetimedb_lib::Identity;
2use spacetimedb_sats::de::Deserialize;
3use spacetimedb_sats::ser::Serialize;
4
5use super::control_db::*;
6
7#[derive(Clone, PartialEq, Serialize, Deserialize)]
9pub enum WorkerBoundMessage {
10 ScheduleState(ScheduleState),
11 ScheduleUpdate(ScheduleUpdate),
12 EnergyBalanceState(EnergyBalanceState),
13 EnergyBalanceUpdate(EnergyBalanceUpdate),
14}
15#[derive(Clone, PartialEq, Serialize, Deserialize)]
17pub enum ControlBoundMessage {
18 EnergyWithdrawals(EnergyWithdrawals),
19}
20#[derive(Clone, PartialEq, Serialize, Deserialize)]
21pub struct ScheduleState {
22 pub replicas: Vec<Replica>,
23 pub databases: Vec<Database>,
24 pub nodes: Vec<Node>,
25}
26#[derive(Clone, PartialEq, Serialize, Deserialize)]
27pub enum ScheduleUpdate {
28 Insert(InsertOperation),
29 Update(UpdateOperation),
30 Delete(DeleteOperation),
31}
32#[derive(Clone, PartialEq, Serialize, Deserialize)]
33pub enum InsertOperation {
34 Replica(Replica),
35 Database(Database),
36 Node(Node),
37}
38#[derive(Clone, PartialEq, Serialize, Deserialize)]
39pub enum UpdateOperation {
40 Replica(Replica),
41 Database(Database),
42 Node(Node),
43}
44#[derive(Clone, PartialEq, Serialize, Deserialize)]
45pub enum DeleteOperation {
46 ReplicaId(u64),
47 DatabaseId(u64),
48 NodeId(u64),
49}
50#[derive(Clone, PartialEq, Serialize, Deserialize)]
52pub struct EnergyBalanceUpdate {
53 pub identity: Identity,
54 pub energy_balance: i128,
55}
56#[derive(Clone, PartialEq, Serialize, Deserialize)]
58pub struct EnergyBalanceState {
59 pub balances: Vec<EnergyBalance>,
60}
61#[derive(Clone, PartialEq, Serialize, Deserialize)]
63pub struct EnergyWithdrawals {
64 pub withdrawals: Vec<EnergyWithdrawal>,
65}
66#[derive(Clone, PartialEq, Serialize, Deserialize)]
67pub struct EnergyWithdrawal {
68 pub identity: Identity,
69 pub amount: i128,
70}