@lix-js/sdk 0.6.0-preview.2 → 0.6.0-preview.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SKILL.md +46 -8
- package/dist/engine-wasm/wasm/lix_engine.d.ts +25 -1
- package/dist/engine-wasm/wasm/lix_engine.js +60 -2
- package/dist/engine-wasm/wasm/lix_engine.wasm +0 -0
- package/dist/engine-wasm/wasm/lix_engine.wasm.d.ts +5 -0
- package/dist/generated/builtin-schemas.d.ts +87 -162
- package/dist/generated/builtin-schemas.js +139 -236
- package/dist/open-lix.d.ts +10 -3
- package/dist/open-lix.js +39 -0
- package/dist-engine-src/src/binary_cas/types.rs +0 -6
- package/dist-engine-src/src/catalog/context.rs +412 -0
- package/dist-engine-src/src/catalog/mod.rs +10 -0
- package/dist-engine-src/src/catalog/schema.rs +4 -0
- package/dist-engine-src/src/catalog/snapshot.rs +1114 -0
- package/dist-engine-src/src/cel/mod.rs +1 -1
- package/dist-engine-src/src/cel/provider.rs +1 -1
- package/dist-engine-src/src/commit_graph/context.rs +328 -1015
- package/dist-engine-src/src/commit_graph/mod.rs +2 -3
- package/dist-engine-src/src/commit_graph/types.rs +7 -43
- package/dist-engine-src/src/commit_graph/walker.rs +57 -81
- package/dist-engine-src/src/commit_store/codec.rs +887 -0
- package/dist-engine-src/src/commit_store/context.rs +944 -0
- package/dist-engine-src/src/commit_store/materialization.rs +84 -0
- package/dist-engine-src/src/commit_store/mod.rs +16 -0
- package/dist-engine-src/src/commit_store/storage.rs +600 -0
- package/dist-engine-src/src/commit_store/types.rs +215 -0
- package/dist-engine-src/src/common/identity.rs +15 -5
- package/dist-engine-src/src/common/json_pointer.rs +67 -0
- package/dist-engine-src/src/common/metadata.rs +17 -12
- package/dist-engine-src/src/common/mod.rs +5 -5
- package/dist-engine-src/src/domain.rs +324 -0
- package/dist-engine-src/src/engine.rs +29 -43
- package/dist-engine-src/src/entity_identity.rs +238 -118
- package/dist-engine-src/src/functions/context.rs +17 -52
- package/dist-engine-src/src/functions/deterministic.rs +1 -1
- package/dist-engine-src/src/functions/mod.rs +1 -1
- package/dist-engine-src/src/functions/provider.rs +4 -4
- package/dist-engine-src/src/functions/state.rs +39 -66
- package/dist-engine-src/src/functions/types.rs +1 -1
- package/dist-engine-src/src/init.rs +204 -151
- package/dist-engine-src/src/json_store/context.rs +354 -60
- package/dist-engine-src/src/json_store/encoded.rs +6 -6
- package/dist-engine-src/src/json_store/mod.rs +4 -1
- package/dist-engine-src/src/json_store/store.rs +884 -11
- package/dist-engine-src/src/json_store/types.rs +166 -1
- package/dist-engine-src/src/lib.rs +11 -10
- package/dist-engine-src/src/live_state/context.rs +608 -830
- package/dist-engine-src/src/live_state/mod.rs +3 -3
- package/dist-engine-src/src/live_state/overlay.rs +7 -7
- package/dist-engine-src/src/live_state/reader.rs +5 -5
- package/dist-engine-src/src/live_state/types.rs +19 -36
- package/dist-engine-src/src/live_state/visibility.rs +19 -14
- package/dist-engine-src/src/plugin/archive.rs +3 -6
- package/dist-engine-src/src/plugin/install.rs +0 -18
- package/dist-engine-src/src/plugin/plugin_manifest.json +0 -1
- package/dist-engine-src/src/schema/annotations/defaults.rs +2 -7
- package/dist-engine-src/src/schema/builtin/lix_account.json +0 -1
- package/dist-engine-src/src/schema/builtin/lix_active_account.json +0 -1
- package/dist-engine-src/src/schema/builtin/lix_binary_blob_ref.json +0 -1
- package/dist-engine-src/src/schema/builtin/lix_change.json +11 -10
- package/dist-engine-src/src/schema/builtin/lix_change_author.json +0 -1
- package/dist-engine-src/src/schema/builtin/lix_commit.json +8 -46
- package/dist-engine-src/src/schema/builtin/lix_commit_edge.json +29 -22
- package/dist-engine-src/src/schema/builtin/lix_directory_descriptor.json +0 -1
- package/dist-engine-src/src/schema/builtin/lix_file_descriptor.json +0 -1
- package/dist-engine-src/src/schema/builtin/lix_key_value.json +0 -1
- package/dist-engine-src/src/schema/builtin/lix_label.json +10 -3
- package/dist-engine-src/src/schema/builtin/lix_label_assignment.json +74 -0
- package/dist-engine-src/src/schema/builtin/lix_registered_schema.json +2 -8
- package/dist-engine-src/src/schema/builtin/lix_version_descriptor.json +0 -1
- package/dist-engine-src/src/schema/builtin/lix_version_ref.json +0 -1
- package/dist-engine-src/src/schema/builtin/mod.rs +10 -59
- package/dist-engine-src/src/schema/compatibility.rs +787 -0
- package/dist-engine-src/src/schema/definition.json +47 -17
- package/dist-engine-src/src/schema/definition.rs +202 -96
- package/dist-engine-src/src/schema/key.rs +9 -77
- package/dist-engine-src/src/schema/mod.rs +4 -4
- package/dist-engine-src/src/schema/tests.rs +133 -92
- package/dist-engine-src/src/session/context.rs +86 -48
- package/dist-engine-src/src/session/create_version.rs +22 -14
- package/dist-engine-src/src/session/execute.rs +117 -23
- package/dist-engine-src/src/session/merge/apply.rs +4 -4
- package/dist-engine-src/src/session/merge/conflicts.rs +3 -2
- package/dist-engine-src/src/session/merge/stats.rs +1 -1
- package/dist-engine-src/src/session/merge/version.rs +35 -45
- package/dist-engine-src/src/session/mod.rs +9 -7
- package/dist-engine-src/src/session/optimization9_sql2_bench.rs +100 -0
- package/dist-engine-src/src/session/switch_version.rs +17 -28
- package/dist-engine-src/src/session/transaction.rs +76 -0
- package/dist-engine-src/src/sql2/change_provider.rs +14 -20
- package/dist-engine-src/src/sql2/classify.rs +75 -48
- package/dist-engine-src/src/sql2/context.rs +22 -18
- package/dist-engine-src/src/sql2/directory_history_provider.rs +28 -20
- package/dist-engine-src/src/sql2/directory_provider.rs +131 -83
- package/dist-engine-src/src/sql2/entity_history_provider.rs +10 -14
- package/dist-engine-src/src/sql2/entity_provider.rs +680 -169
- package/dist-engine-src/src/sql2/error.rs +24 -5
- package/dist-engine-src/src/sql2/execute.rs +426 -272
- package/dist-engine-src/src/sql2/file_history_provider.rs +29 -21
- package/dist-engine-src/src/sql2/file_provider.rs +533 -108
- package/dist-engine-src/src/sql2/filesystem_planner.rs +58 -94
- package/dist-engine-src/src/sql2/filesystem_visibility.rs +37 -23
- package/dist-engine-src/src/sql2/history_projection.rs +3 -27
- package/dist-engine-src/src/sql2/history_provider.rs +11 -17
- package/dist-engine-src/src/sql2/history_route.rs +22 -8
- package/dist-engine-src/src/sql2/lix_state_provider.rs +178 -96
- package/dist-engine-src/src/sql2/mod.rs +8 -4
- package/dist-engine-src/src/sql2/predicate_typecheck.rs +246 -0
- package/dist-engine-src/src/sql2/public_bind/assignment.rs +46 -0
- package/dist-engine-src/src/sql2/public_bind/capability.rs +41 -0
- package/dist-engine-src/src/sql2/public_bind/dml.rs +172 -0
- package/dist-engine-src/src/sql2/public_bind/mod.rs +26 -0
- package/dist-engine-src/src/sql2/public_bind/table.rs +168 -0
- package/dist-engine-src/src/sql2/read_only.rs +10 -12
- package/dist-engine-src/src/sql2/session.rs +7 -10
- package/dist-engine-src/src/sql2/udfs/lix_timestamp.rs +76 -0
- package/dist-engine-src/src/sql2/udfs/mod.rs +8 -1
- package/dist-engine-src/src/sql2/udfs/public_call.rs +238 -0
- package/dist-engine-src/src/sql2/version_provider.rs +46 -31
- package/dist-engine-src/src/sql2/version_scope.rs +4 -4
- package/dist-engine-src/src/storage_bench.rs +1782 -325
- package/dist-engine-src/src/test_support.rs +183 -36
- package/dist-engine-src/src/tracked_state/by_file_index.rs +20 -24
- package/dist-engine-src/src/tracked_state/codec.rs +1519 -181
- package/dist-engine-src/src/tracked_state/context.rs +1155 -271
- package/dist-engine-src/src/tracked_state/diff.rs +249 -57
- package/dist-engine-src/src/tracked_state/materialization.rs +365 -103
- package/dist-engine-src/src/tracked_state/materializer.rs +488 -0
- package/dist-engine-src/src/tracked_state/merge.rs +37 -19
- package/dist-engine-src/src/tracked_state/mod.rs +8 -7
- package/dist-engine-src/src/tracked_state/storage.rs +138 -6
- package/dist-engine-src/src/tracked_state/tree.rs +695 -252
- package/dist-engine-src/src/tracked_state/types.rs +176 -6
- package/dist-engine-src/src/transaction/commit.rs +695 -435
- package/dist-engine-src/src/transaction/context.rs +551 -310
- package/dist-engine-src/src/transaction/live_state_overlay.rs +9 -8
- package/dist-engine-src/src/transaction/mod.rs +2 -0
- package/dist-engine-src/src/transaction/normalization.rs +311 -447
- package/dist-engine-src/src/transaction/prep.rs +37 -0
- package/dist-engine-src/src/transaction/schema_resolver.rs +93 -71
- package/dist-engine-src/src/transaction/staging.rs +701 -406
- package/dist-engine-src/src/transaction/types.rs +231 -122
- package/dist-engine-src/src/transaction/validation.rs +2717 -1698
- package/dist-engine-src/src/untracked_state/codec.rs +40 -96
- package/dist-engine-src/src/untracked_state/context.rs +21 -5
- package/dist-engine-src/src/untracked_state/materialization.rs +10 -104
- package/dist-engine-src/src/untracked_state/mod.rs +3 -5
- package/dist-engine-src/src/untracked_state/storage.rs +105 -57
- package/dist-engine-src/src/untracked_state/types.rs +63 -13
- package/dist-engine-src/src/version/context.rs +1 -13
- package/dist-engine-src/src/version/lifecycle.rs +221 -0
- package/dist-engine-src/src/version/mod.rs +3 -2
- package/dist-engine-src/src/version/refs.rs +12 -103
- package/dist-engine-src/src/version/stage_rows.rs +15 -19
- package/package.json +1 -1
- package/dist-engine-src/src/changelog/codec.rs +0 -321
- package/dist-engine-src/src/changelog/context.rs +0 -92
- package/dist-engine-src/src/changelog/materialization.rs +0 -121
- package/dist-engine-src/src/changelog/mod.rs +0 -13
- package/dist-engine-src/src/changelog/reader.rs +0 -20
- package/dist-engine-src/src/changelog/storage.rs +0 -220
- package/dist-engine-src/src/changelog/types.rs +0 -38
- package/dist-engine-src/src/schema/builtin/lix_change_set.json +0 -18
- package/dist-engine-src/src/schema/builtin/lix_change_set_element.json +0 -75
- package/dist-engine-src/src/schema/builtin/lix_entity_label.json +0 -63
- package/dist-engine-src/src/schema_registry.rs +0 -294
- package/dist-engine-src/src/sql2/commit_derived_provider.rs +0 -591
- package/dist-engine-src/src/tracked_state/rebuild.rs +0 -771
- package/dist-engine-src/src/tracked_state/tree_types.rs +0 -176
|
@@ -2,7 +2,7 @@ use std::sync::{Arc, Mutex};
|
|
|
2
2
|
|
|
3
3
|
use crate::cel::CelFunctionProvider;
|
|
4
4
|
|
|
5
|
-
///
|
|
5
|
+
/// Engine-owned runtime function provider trait.
|
|
6
6
|
pub(crate) trait FunctionProvider: Send {
|
|
7
7
|
fn uuid_v7(&mut self) -> String;
|
|
8
8
|
fn timestamp(&mut self) -> String;
|
|
@@ -38,7 +38,7 @@ impl<P> SharedFunctionProvider<P> {
|
|
|
38
38
|
let guard = self
|
|
39
39
|
.inner
|
|
40
40
|
.lock()
|
|
41
|
-
.expect("
|
|
41
|
+
.expect("engine function provider mutex poisoned");
|
|
42
42
|
f(&guard)
|
|
43
43
|
}
|
|
44
44
|
|
|
@@ -46,7 +46,7 @@ impl<P> SharedFunctionProvider<P> {
|
|
|
46
46
|
let mut guard = self
|
|
47
47
|
.inner
|
|
48
48
|
.lock()
|
|
49
|
-
.expect("
|
|
49
|
+
.expect("engine function provider mutex poisoned");
|
|
50
50
|
f(&mut guard)
|
|
51
51
|
}
|
|
52
52
|
}
|
|
@@ -115,7 +115,7 @@ where
|
|
|
115
115
|
}
|
|
116
116
|
}
|
|
117
117
|
|
|
118
|
-
/// System-backed
|
|
118
|
+
/// System-backed engine function provider.
|
|
119
119
|
#[derive(Debug, Default, Clone, Copy)]
|
|
120
120
|
pub(crate) struct SystemFunctionProvider;
|
|
121
121
|
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
use serde_json::Value as JsonValue;
|
|
2
|
+
use std::sync::Arc;
|
|
2
3
|
|
|
3
4
|
use crate::entity_identity::EntityIdentity;
|
|
4
5
|
use crate::functions::{DeterministicMode, DeterministicSequence};
|
|
5
|
-
use crate::json_store::
|
|
6
|
-
use crate::live_state::{LiveStateReader,
|
|
7
|
-
use crate::storage::
|
|
6
|
+
use crate::json_store::NormalizedJson;
|
|
7
|
+
use crate::live_state::{LiveStateReader, LiveStateRowRequest, MaterializedLiveStateRow};
|
|
8
|
+
use crate::storage::StorageWriteSet;
|
|
9
|
+
use crate::untracked_state::UntrackedStateContext;
|
|
10
|
+
use crate::untracked_state::UntrackedStateRow;
|
|
8
11
|
use crate::GLOBAL_VERSION_ID;
|
|
9
12
|
use crate::{LixError, NullableKeyFilter};
|
|
10
13
|
|
|
@@ -12,7 +15,6 @@ pub(crate) const DETERMINISTIC_MODE_KEY: &str = "lix_deterministic_mode";
|
|
|
12
15
|
pub(crate) const DETERMINISTIC_SEQUENCE_KEY: &str = "lix_deterministic_sequence_number";
|
|
13
16
|
|
|
14
17
|
const KEY_VALUE_SCHEMA_KEY: &str = "lix_key_value";
|
|
15
|
-
const KEY_VALUE_SCHEMA_VERSION: &str = "1";
|
|
16
18
|
|
|
17
19
|
/// Loads deterministic-mode settings from visible live state.
|
|
18
20
|
///
|
|
@@ -46,16 +48,11 @@ pub(crate) async fn load_sequence(
|
|
|
46
48
|
///
|
|
47
49
|
/// The row is untracked global `lix_key_value` state: it is durable local
|
|
48
50
|
/// runtime state, not a changelog fact.
|
|
49
|
-
pub(crate) async fn stage_sequence
|
|
50
|
-
writer: &mut LiveStateWriter<S>,
|
|
51
|
+
pub(crate) async fn stage_sequence(
|
|
51
52
|
writes: &mut StorageWriteSet,
|
|
52
|
-
json_writer: &mut JsonStoreWriter,
|
|
53
53
|
sequence: DeterministicSequence,
|
|
54
54
|
timestamp: &str,
|
|
55
|
-
) -> Result<(), LixError>
|
|
56
|
-
where
|
|
57
|
-
S: StorageReader,
|
|
58
|
-
{
|
|
55
|
+
) -> Result<(), LixError> {
|
|
59
56
|
let snapshot_content = serde_json::to_string(&serde_json::json!({
|
|
60
57
|
"key": DETERMINISTIC_SEQUENCE_KEY,
|
|
61
58
|
"value": sequence.highest_seen,
|
|
@@ -66,18 +63,18 @@ where
|
|
|
66
63
|
format!("deterministic sequence snapshot serialization failed: {error}"),
|
|
67
64
|
)
|
|
68
65
|
})?;
|
|
69
|
-
let
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
66
|
+
let snapshot = NormalizedJson::from_arc_unchecked(Arc::from(snapshot_content.as_str()));
|
|
67
|
+
let row =
|
|
68
|
+
deterministic_key_value_row(DETERMINISTIC_SEQUENCE_KEY, snapshot.as_str(), timestamp)?;
|
|
69
|
+
UntrackedStateContext::new()
|
|
70
|
+
.writer(writes)
|
|
71
|
+
.stage_rows(std::iter::once(row.as_ref()))
|
|
75
72
|
}
|
|
76
73
|
|
|
77
74
|
async fn load_key_value_row(
|
|
78
75
|
live_state: &dyn LiveStateReader,
|
|
79
76
|
key: &str,
|
|
80
|
-
) -> Result<Option<
|
|
77
|
+
) -> Result<Option<MaterializedLiveStateRow>, LixError> {
|
|
81
78
|
live_state
|
|
82
79
|
.load_row(&LiveStateRowRequest {
|
|
83
80
|
schema_key: KEY_VALUE_SCHEMA_KEY.to_string(),
|
|
@@ -88,7 +85,7 @@ async fn load_key_value_row(
|
|
|
88
85
|
.await
|
|
89
86
|
}
|
|
90
87
|
|
|
91
|
-
fn key_value_payload(row: &
|
|
88
|
+
fn key_value_payload(row: &MaterializedLiveStateRow, key: &str) -> Result<JsonValue, LixError> {
|
|
92
89
|
let snapshot_content = row.snapshot_content.as_deref().ok_or_else(|| {
|
|
93
90
|
LixError::new(
|
|
94
91
|
"LIX_ERROR_UNKNOWN",
|
|
@@ -153,24 +150,20 @@ fn parse_sequence_value(value: JsonValue) -> Result<DeterministicSequence, LixEr
|
|
|
153
150
|
|
|
154
151
|
fn deterministic_key_value_row(
|
|
155
152
|
key: &str,
|
|
156
|
-
snapshot_content:
|
|
157
|
-
timestamp:
|
|
158
|
-
) ->
|
|
159
|
-
|
|
153
|
+
snapshot_content: &str,
|
|
154
|
+
timestamp: &str,
|
|
155
|
+
) -> Result<UntrackedStateRow, LixError> {
|
|
156
|
+
Ok(UntrackedStateRow {
|
|
160
157
|
entity_id: crate::entity_identity::EntityIdentity::single(key),
|
|
161
158
|
schema_key: KEY_VALUE_SCHEMA_KEY.to_string(),
|
|
162
159
|
file_id: None,
|
|
163
|
-
snapshot_content: Some(snapshot_content),
|
|
160
|
+
snapshot_content: Some(snapshot_content.to_string()),
|
|
164
161
|
metadata: None,
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
updated_at: timestamp,
|
|
162
|
+
created_at: timestamp.to_string(),
|
|
163
|
+
updated_at: timestamp.to_string(),
|
|
168
164
|
global: true,
|
|
169
|
-
change_id: None,
|
|
170
|
-
commit_id: None,
|
|
171
|
-
untracked: true,
|
|
172
165
|
version_id: GLOBAL_VERSION_ID.to_string(),
|
|
173
|
-
}
|
|
166
|
+
})
|
|
174
167
|
}
|
|
175
168
|
|
|
176
169
|
#[cfg(test)]
|
|
@@ -187,7 +180,7 @@ mod tests {
|
|
|
187
180
|
LiveStateContext::new(
|
|
188
181
|
crate::tracked_state::TrackedStateContext::new(),
|
|
189
182
|
crate::untracked_state::UntrackedStateContext::new(),
|
|
190
|
-
crate::commit_graph::CommitGraphContext::new(
|
|
183
|
+
crate::commit_graph::CommitGraphContext::new(),
|
|
191
184
|
)
|
|
192
185
|
}
|
|
193
186
|
|
|
@@ -213,7 +206,6 @@ mod tests {
|
|
|
213
206
|
crate::test_support::seed_global_version_head(storage.clone()).await;
|
|
214
207
|
write_test_key_value(
|
|
215
208
|
storage.clone(),
|
|
216
|
-
&live_state,
|
|
217
209
|
DETERMINISTIC_MODE_KEY,
|
|
218
210
|
serde_json::json!({
|
|
219
211
|
"enabled": true,
|
|
@@ -256,7 +248,6 @@ mod tests {
|
|
|
256
248
|
crate::test_support::seed_global_version_head(storage.clone()).await;
|
|
257
249
|
write_test_key_value(
|
|
258
250
|
storage.clone(),
|
|
259
|
-
&live_state,
|
|
260
251
|
DETERMINISTIC_SEQUENCE_KEY,
|
|
261
252
|
serde_json::json!(41),
|
|
262
253
|
)
|
|
@@ -283,19 +274,13 @@ mod tests {
|
|
|
283
274
|
.expect("transaction should open");
|
|
284
275
|
|
|
285
276
|
let mut writes = StorageWriteSet::new();
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
DeterministicSequence { highest_seen: 7 },
|
|
294
|
-
"1970-01-01T00:00:00.000Z",
|
|
295
|
-
)
|
|
296
|
-
.await
|
|
297
|
-
.expect("sequence should stage");
|
|
298
|
-
}
|
|
277
|
+
stage_sequence(
|
|
278
|
+
&mut writes,
|
|
279
|
+
DeterministicSequence { highest_seen: 7 },
|
|
280
|
+
"1970-01-01T00:00:00.000Z",
|
|
281
|
+
)
|
|
282
|
+
.await
|
|
283
|
+
.expect("sequence should stage");
|
|
299
284
|
writes
|
|
300
285
|
.apply(&mut tx.as_mut())
|
|
301
286
|
.await
|
|
@@ -325,12 +310,7 @@ mod tests {
|
|
|
325
310
|
);
|
|
326
311
|
}
|
|
327
312
|
|
|
328
|
-
async fn write_test_key_value(
|
|
329
|
-
storage: StorageContext,
|
|
330
|
-
live_state: &LiveStateContext,
|
|
331
|
-
key: &str,
|
|
332
|
-
value: JsonValue,
|
|
333
|
-
) {
|
|
313
|
+
async fn write_test_key_value(storage: StorageContext, key: &str, value: JsonValue) {
|
|
334
314
|
let mut tx = storage
|
|
335
315
|
.begin_write_transaction()
|
|
336
316
|
.await
|
|
@@ -340,20 +320,13 @@ mod tests {
|
|
|
340
320
|
"value": value,
|
|
341
321
|
}))
|
|
342
322
|
.expect("snapshot should serialize");
|
|
343
|
-
let row = deterministic_key_value_row(
|
|
344
|
-
key,
|
|
345
|
-
snapshot_content,
|
|
346
|
-
"1970-01-01T00:00:00.000Z".to_string(),
|
|
347
|
-
);
|
|
348
323
|
let mut writes = StorageWriteSet::new();
|
|
349
|
-
let
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
writer
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
.expect("test key-value should stage");
|
|
356
|
-
}
|
|
324
|
+
let row = deterministic_key_value_row(key, &snapshot_content, "1970-01-01T00:00:00.000Z")
|
|
325
|
+
.expect("test key-value should canonicalize");
|
|
326
|
+
UntrackedStateContext::new()
|
|
327
|
+
.writer(&mut writes)
|
|
328
|
+
.stage_rows(std::iter::once(row.as_ref()))
|
|
329
|
+
.expect("test key-value should stage");
|
|
357
330
|
writes
|
|
358
331
|
.apply(&mut tx.as_mut())
|
|
359
332
|
.await
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// Decoded deterministic-mode setting.
|
|
2
2
|
///
|
|
3
3
|
/// Storage can decide where this setting lives. The type only describes the
|
|
4
|
-
/// behavior
|
|
4
|
+
/// behavior engine should apply while preparing runtime functions.
|
|
5
5
|
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
|
6
6
|
pub(crate) struct DeterministicMode {
|
|
7
7
|
pub(crate) enabled: bool,
|