Skip to content

Commit 5307f25

Browse files
authored
Split the old locking_tx_datastore (#757)
* datastore: extract SequencesState * datastore: extract tx_state * datastore: extract committed_state & iter * datastore: extract mut_tx * cargo fmt * move some pure AV/AT sats logic to sats * pacify lints and cargo fmt * datastore: iter -> state_view + move in StateView
1 parent c80cd35 commit 5307f25

File tree

8 files changed

+2261
-2146
lines changed

8 files changed

+2261
-2146
lines changed

crates/core/src/db/datastore/locking_tx_datastore/committed_state.rs

Lines changed: 461 additions & 0 deletions
Large diffs are not rendered by default.

crates/core/src/db/datastore/locking_tx_datastore/mod.rs

Lines changed: 90 additions & 2146 deletions
Large diffs are not rendered by default.

crates/core/src/db/datastore/locking_tx_datastore/mut_tx.rs

Lines changed: 1083 additions & 0 deletions
Large diffs are not rendered by default.

crates/core/src/db/datastore/locking_tx_datastore/sequence.rs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1+
use spacetimedb_primitives::SequenceId;
12
use spacetimedb_sats::db::def::SequenceSchema;
3+
use std::collections::HashMap;
24

35
pub struct Sequence {
46
schema: SequenceSchema,
@@ -87,3 +89,23 @@ impl Sequence {
8789
self.schema.allocated = allocated;
8890
}
8991
}
92+
93+
/// A map of [`SequenceId`] -> [`Sequence`].
94+
#[derive(Default)]
95+
pub struct SequencesState {
96+
sequences: HashMap<SequenceId, Sequence>,
97+
}
98+
99+
impl SequencesState {
100+
pub fn get_sequence_mut(&mut self, seq_id: SequenceId) -> Option<&mut Sequence> {
101+
self.sequences.get_mut(&seq_id)
102+
}
103+
104+
pub fn insert(&mut self, seq_id: SequenceId, seq: Sequence) {
105+
self.sequences.insert(seq_id, seq);
106+
}
107+
108+
pub fn remove(&mut self, seq_id: SequenceId) {
109+
self.sequences.remove(&seq_id);
110+
}
111+
}

0 commit comments

Comments
 (0)