@feltdb/core 0.8.4 → 0.8.6

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.
Files changed (160) hide show
  1. package/dist/create/package-versions.js +1 -1
  2. package/dist/create/server-source/Cargo.lock +165 -0
  3. package/dist/create/server-source/Cargo.toml +9 -0
  4. package/dist/create/server-source/crates/feltdb/Cargo.toml +3 -0
  5. package/dist/create/server-source/crates/feltdb/benches/gate13_baseline.rs +44 -44
  6. package/dist/create/server-source/crates/feltdb/benches/gate13_phase_7_1_release_economics.rs +12 -24
  7. package/dist/create/server-source/crates/feltdb/benches/gate_13_redux.rs +7 -13
  8. package/dist/create/server-source/crates/feltdb/benches/gate_13_regression_runner.rs +13 -10
  9. package/dist/create/server-source/crates/feltdb/benches/gate_14a_concurrent_writer_scaling.rs +12 -9
  10. package/dist/create/server-source/crates/feltdb/benches/gate_14a_production_admission_revalidation.rs +78 -25
  11. package/dist/create/server-source/crates/feltdb/benches/gate_14a_rc2_admission_contract.rs +16 -13
  12. package/dist/create/server-source/crates/feltdb/benches/gate_14a_rc_root_cause.rs +13 -5
  13. package/dist/create/server-source/crates/feltdb/benches/gate_14a_sync1_queued_prototype.rs +41 -22
  14. package/dist/create/server-source/crates/feltdb/benches/gate_14a_sync_economics.rs +33 -15
  15. package/dist/create/server-source/crates/feltdb/benches/gate_14b_causal_backlog_scaling.rs +100 -33
  16. package/dist/create/server-source/crates/feltdb/benches/gate_14c_replication_contract_test.rs +56 -20
  17. package/dist/create/server-source/crates/feltdb/benches/gate_14c_replication_scaling.rs +116 -41
  18. package/dist/create/server-source/crates/feltdb/benches/gate_14d_combined_dimension_scaling.rs +186 -55
  19. package/dist/create/server-source/crates/feltdb/benches/phase_7_1_2_optimization_benchmark.rs +64 -26
  20. package/dist/create/server-source/crates/feltdb/benches/phase_7_1_3_crossover_analysis.rs +46 -15
  21. package/dist/create/server-source/crates/feltdb/src/admission.rs +8 -15
  22. package/dist/create/server-source/crates/feltdb/src/admission_contract_tests.rs +43 -13
  23. package/dist/create/server-source/crates/feltdb/src/adversarial_transport.rs +15 -42
  24. package/dist/create/server-source/crates/feltdb/src/analytics.rs +65 -19
  25. package/dist/create/server-source/crates/feltdb/src/application.rs +113 -30
  26. package/dist/create/server-source/crates/feltdb/src/authorization_security_tests.rs +475 -140
  27. package/dist/create/server-source/crates/feltdb/src/cardinality_diagnostics.rs +17 -15
  28. package/dist/create/server-source/crates/feltdb/src/cardinality_endpoint.rs +0 -1
  29. package/dist/create/server-source/crates/feltdb/src/causal_backlog_bound.rs +59 -15
  30. package/dist/create/server-source/crates/feltdb/src/causal_dependency_barrier.rs +266 -114
  31. package/dist/create/server-source/crates/feltdb/src/causal_dependency_barrier_phase_7_1.rs +25 -7
  32. package/dist/create/server-source/crates/feltdb/src/concurrency_fuzzing.rs +10 -15
  33. package/dist/create/server-source/crates/feltdb/src/consistency_contract.rs +3 -11
  34. package/dist/create/server-source/crates/feltdb/src/crash_atomic_boundary.rs +14 -5
  35. package/dist/create/server-source/crates/feltdb/src/crash_injection.rs +21 -25
  36. package/dist/create/server-source/crates/feltdb/src/crash_recovery_tests.rs +14 -11
  37. package/dist/create/server-source/crates/feltdb/src/dedup_bound_investigation.rs +103 -22
  38. package/dist/create/server-source/crates/feltdb/src/distributed_indexing.rs +18 -15
  39. package/dist/create/server-source/crates/feltdb/src/durability_guarantees.rs +12 -8
  40. package/dist/create/server-source/crates/feltdb/src/durable_dedup_set.rs +1 -5
  41. package/dist/create/server-source/crates/feltdb/src/durable_operation_identity.rs +87 -23
  42. package/dist/create/server-source/crates/feltdb/src/durable_operation_log.rs +3 -7
  43. package/dist/create/server-source/crates/feltdb/src/durable_sync.rs +10 -9
  44. package/dist/create/server-source/crates/feltdb/src/in_process_transport.rs +1 -6
  45. package/dist/create/server-source/crates/feltdb/src/indexing.rs +35 -38
  46. package/dist/create/server-source/crates/feltdb/src/lib.rs +1648 -46
  47. package/dist/create/server-source/crates/feltdb/src/managed_cas_tests.rs +4 -1
  48. package/dist/create/server-source/crates/feltdb/src/metrics.rs +0 -1
  49. package/dist/create/server-source/crates/feltdb/src/multi_node_convergence.rs +1 -2
  50. package/dist/create/server-source/crates/feltdb/src/multi_operation_transaction.rs +107 -30
  51. package/dist/create/server-source/crates/feltdb/src/observability.rs +19 -6
  52. package/dist/create/server-source/crates/feltdb/src/operation.rs +39 -0
  53. package/dist/create/server-source/crates/feltdb/src/operation_algebra.rs +12 -11
  54. package/dist/create/server-source/crates/feltdb/src/operation_log.rs +9 -4
  55. package/dist/create/server-source/crates/feltdb/src/p1_application_atomicity.rs +65 -18
  56. package/dist/create/server-source/crates/feltdb/src/p1_atomicity_acceptance.rs +193 -57
  57. package/dist/create/server-source/crates/feltdb/src/partition_reconciliation.rs +37 -27
  58. package/dist/create/server-source/crates/feltdb/src/permutation_scheduler.rs +38 -10
  59. package/dist/create/server-source/crates/feltdb/src/persistence_reality.rs +20 -14
  60. package/dist/create/server-source/crates/feltdb/src/phase1b_acceptance.rs +394 -229
  61. package/dist/create/server-source/crates/feltdb/src/phase1c1_acceptance.rs +8 -6
  62. package/dist/create/server-source/crates/feltdb/src/phase1c2_acceptance.rs +11 -13
  63. package/dist/create/server-source/crates/feltdb/src/phase1c3_acceptance.rs +79 -70
  64. package/dist/create/server-source/crates/feltdb/src/phase1c_atomicity_proof.rs +3 -3
  65. package/dist/create/server-source/crates/feltdb/src/phase5_integration.rs +33 -11
  66. package/dist/create/server-source/crates/feltdb/src/phase5_scenarios.rs +6 -6
  67. package/dist/create/server-source/crates/feltdb/src/phase6_adversarial_scenarios.rs +14 -56
  68. package/dist/create/server-source/crates/feltdb/src/phase6_convergence_validator.rs +29 -27
  69. package/dist/create/server-source/crates/feltdb/src/phase6_persistence.rs +35 -17
  70. package/dist/create/server-source/crates/feltdb/src/phase_1c_real_tcp.rs +8 -2
  71. package/dist/create/server-source/crates/feltdb/src/phase_2a_failures.rs +59 -15
  72. package/dist/create/server-source/crates/feltdb/src/phase_2b_network.rs +70 -17
  73. package/dist/create/server-source/crates/feltdb/src/phase_2c_cascading.rs +23 -6
  74. package/dist/create/server-source/crates/feltdb/src/phase_3_durability.rs +12 -3
  75. package/dist/create/server-source/crates/feltdb/src/phase_4_baseline.rs +41 -11
  76. package/dist/create/server-source/crates/feltdb/src/phase_5_soak.rs +56 -25
  77. package/dist/create/server-source/crates/feltdb/src/policy_evaluation.rs +701 -245
  78. package/dist/create/server-source/crates/feltdb/src/production_api.rs +31 -13
  79. package/dist/create/server-source/crates/feltdb/src/query_performance.rs +6 -8
  80. package/dist/create/server-source/crates/feltdb/src/replay_fuzzing.rs +5 -5
  81. package/dist/create/server-source/crates/feltdb/src/replica_acknowledgements.rs +48 -18
  82. package/dist/create/server-source/crates/feltdb/src/replica_membership.rs +30 -11
  83. package/dist/create/server-source/crates/feltdb/src/replication_manager.rs +6 -3
  84. package/dist/create/server-source/crates/feltdb/src/replication_protocol.rs +4 -3
  85. package/dist/create/server-source/crates/feltdb/src/sharding.rs +36 -10
  86. package/dist/create/server-source/crates/feltdb/src/state_conflict_contract.rs +516 -0
  87. package/dist/create/server-source/crates/feltdb/src/state_contract.rs +13 -4
  88. package/dist/create/server-source/crates/feltdb/src/state_diff_contract.rs +222 -0
  89. package/dist/create/server-source/crates/feltdb/src/state_facade.rs +82 -54
  90. package/dist/create/server-source/crates/feltdb/src/state_hash.rs +2 -2
  91. package/dist/create/server-source/crates/feltdb/src/state_model.rs +1565 -536
  92. package/dist/create/server-source/crates/feltdb/src/state_transition_store.rs +6 -3
  93. package/dist/create/server-source/crates/feltdb/src/state_trigger.rs +672 -0
  94. package/dist/create/server-source/crates/feltdb/src/storage.rs +9 -3
  95. package/dist/create/server-source/crates/feltdb/src/submission.rs +5 -11
  96. package/dist/create/server-source/crates/feltdb/src/tcp_transport.rs +6 -8
  97. package/dist/create/server-source/crates/feltdb/src/transaction_api.rs +24 -35
  98. package/dist/create/server-source/crates/feltdb/src/transaction_invariants.rs +24 -8
  99. package/dist/create/server-source/crates/feltdb/src/transaction_preconditions.rs +248 -59
  100. package/dist/create/server-source/crates/feltdb/src/transactions.rs +17 -20
  101. package/dist/create/server-source/crates/feltdb/src/trigger_contract.rs +749 -0
  102. package/dist/create/server-source/crates/feltdb/src/worker_mesh.rs +1 -0
  103. package/dist/create/server-source/crates/feltdb/src/workload.rs +512 -4
  104. package/dist/create/server-source/crates/feltdb/src/workload_diagnostics.rs +3 -4
  105. package/dist/create/server-source/crates/feltdb/tests/bounded_read_contract.rs +132 -0
  106. package/dist/create/server-source/crates/feltdb/tests/branching_evidence.rs +299 -0
  107. package/dist/create/server-source/crates/feltdb/tests/compaction_stall_contract.rs +272 -0
  108. package/dist/create/server-source/crates/feltdb/tests/crash_durability_contract.rs +467 -0
  109. package/dist/create/server-source/crates/feltdb/tests/current_revision_authority_evidence.rs +309 -0
  110. package/dist/create/server-source/crates/feltdb/tests/durable_backup_contract.rs +445 -0
  111. package/dist/create/server-source/crates/feltdb/tests/durable_corruption_contract.rs +518 -0
  112. package/dist/create/server-source/crates/feltdb/tests/durable_format_compatibility.rs +392 -0
  113. package/dist/create/server-source/crates/feltdb/tests/feltdb_state_boundary_tests.rs +436 -220
  114. package/dist/create/server-source/crates/feltdb/tests/fixtures/state_conflict_contract_corpus.json +1916 -0
  115. package/dist/create/server-source/crates/feltdb/tests/fixtures/state_diff_contract_corpus.json +1878 -0
  116. package/dist/create/server-source/crates/feltdb/tests/fixtures/trigger_contract_corpus.json +1862 -0
  117. package/dist/create/server-source/crates/feltdb/tests/operational_health_contract.rs +278 -0
  118. package/dist/create/server-source/crates/feltdb/tests/pr34_query_collection.rs +2 -1
  119. package/dist/create/server-source/crates/feltdb/tests/pr35_equality_index.rs +80 -25
  120. package/dist/create/server-source/crates/feltdb/tests/pr7_self_authorization_proof.rs +5 -8
  121. package/dist/create/server-source/crates/feltdb/tests/pr8_vocabulary_assessment.rs +52 -44
  122. package/dist/create/server-source/crates/feltdb/tests/pr9_phase2_boundary_tests.rs +33 -16
  123. package/dist/create/server-source/crates/feltdb/tests/pr9_phase3a_path_a_tests.rs +22 -7
  124. package/dist/create/server-source/crates/feltdb/tests/pr9_phase3c_authorized_mutations.rs +41 -22
  125. package/dist/create/server-source/crates/feltdb/tests/pr9_phase3c_role_based_authorization.rs +25 -8
  126. package/dist/create/server-source/crates/feltdb/tests/pr9_phase3c_simple_auth_delete.rs +9 -6
  127. package/dist/create/server-source/crates/feltdb/tests/pr9_phase3c_team_delete_role_authorization.rs +120 -69
  128. package/dist/create/server-source/crates/feltdb/tests/pr9_teams_role_based_access.rs +21 -10
  129. package/dist/create/server-source/crates/feltdb/tests/production_readiness_contract.rs +1365 -0
  130. package/dist/create/server-source/crates/feltdb/tests/reconciliation_application.rs +868 -0
  131. package/dist/create/server-source/crates/feltdb/tests/reconciliation_wire_format_evidence.rs +221 -0
  132. package/dist/create/server-source/crates/feltdb/tests/replicated_history_contract.rs +417 -0
  133. package/dist/create/server-source/crates/feltdb/tests/resource_scoped_revisions.rs +338 -0
  134. package/dist/create/server-source/crates/feltdb/tests/revision_identity_contract.rs +1039 -0
  135. package/dist/create/server-source/crates/feltdb/tests/revision_model_decision.rs +739 -0
  136. package/dist/create/server-source/crates/feltdb/tests/revision_retention_boundary_evidence.rs +427 -0
  137. package/dist/create/server-source/crates/feltdb/tests/saas_authorization_integration.rs +3 -3
  138. package/dist/create/server-source/crates/feltdb/tests/saas_invitation_lifecycle.rs +25 -22
  139. package/dist/create/server-source/crates/feltdb/tests/state_conflict_contract_conformance.rs +1799 -0
  140. package/dist/create/server-source/crates/feltdb/tests/state_diff_contract_conformance.rs +1316 -0
  141. package/dist/create/server-source/crates/feltdb/tests/state_model_integration.rs +53 -61
  142. package/dist/create/server-source/crates/feltdb/tests/state_persistence_integration.rs +156 -61
  143. package/dist/create/server-source/crates/feltdb/tests/state_store_boundary_evidence.rs +299 -0
  144. package/dist/create/server-source/crates/feltdb/tests/sync_divergence_evidence.rs +255 -0
  145. package/dist/create/server-source/crates/feltdb/tests/three_way_input_boundary_evidence.rs +249 -0
  146. package/dist/create/server-source/crates/feltdb/tests/trigger_contract_conformance.rs +994 -0
  147. package/dist/create/server-source/crates/feltdb/tests/workload_envelope_contract.rs +442 -0
  148. package/dist/create/server-source/crates/feltdb-server/src/app_state.rs +16 -1
  149. package/dist/create/server-source/crates/feltdb-server/src/auth.rs +164 -13
  150. package/dist/create/server-source/crates/feltdb-server/src/main.rs +695 -47
  151. package/dist/create/server-source/crates/feltdb-server/src/metrics.rs +21 -0
  152. package/dist/studio-app/assets/{feltdb_wasm-CVQWgXO-.js → feltdb_wasm-C1VhI-U5.js} +1 -1
  153. package/dist/studio-app/assets/feltdb_wasm_bg-C8HXbAXb.wasm +0 -0
  154. package/dist/studio-app/assets/{index-DwgNAIIX.js → index-Bbos1m2U.js} +1 -1
  155. package/dist/studio-app/index.html +1 -1
  156. package/dist/wasm/feltdb_wasm_bg.wasm +0 -0
  157. package/dist/workload.d.ts +2 -1
  158. package/dist/workload.d.ts.map +1 -1
  159. package/package.json +1 -1
  160. package/dist/studio-app/assets/feltdb_wasm_bg-CNVpvaZV.wasm +0 -0
@@ -2,7 +2,6 @@
2
2
  ///
3
3
  /// This module provides tools to understand how collection cardinality is reconstructed
4
4
  /// during startup and how it compares to query-time lookups.
5
-
6
5
  use crate::{AtomicMutation, FeltDb};
7
6
  use std::collections::HashMap;
8
7
 
@@ -61,9 +60,9 @@ pub fn diagnose_cardinality(
61
60
 
62
61
  CardinalityDiagnostic {
63
62
  collection: collection_name.to_string(),
64
- persisted_capabilities: vec![], // Would need access to inner.rows to populate
63
+ persisted_capabilities: vec![], // Would need access to inner.rows to populate
65
64
  persisted_row_counts: HashMap::new(),
66
- total_persisted_rows: 0, // Would need to scan inner.rows
65
+ total_persisted_rows: 0, // Would need to scan inner.rows
67
66
  maintained_count,
68
67
  query_capability,
69
68
  match_status: if maintained_count == 0 {
@@ -71,7 +70,7 @@ pub fn diagnose_cardinality(
71
70
  } else {
72
71
  "OK".to_string()
73
72
  },
74
- delta: 0, // Can't compute without authoritative row count
73
+ delta: 0, // Can't compute without authoritative row count
75
74
  }
76
75
  }
77
76
 
@@ -125,7 +124,8 @@ mod tests {
125
124
  },
126
125
  ];
127
126
 
128
- db.apply_atomic_transaction("txn-1", None, &[], &mutations, None).unwrap();
127
+ db.apply_atomic_transaction("txn-1", None, &[], &mutations, None)
128
+ .unwrap();
129
129
 
130
130
  // At this point, cardinality should be 2 for the key "github_webhook_deliveries"
131
131
  let count = db.collection_cardinality(capability).unwrap();
@@ -140,14 +140,13 @@ mod tests {
140
140
 
141
141
  // But if query looks for a DIFFERENT capability:
142
142
  let namespaced_capability = "default:github_webhook_deliveries";
143
- let count_namespaced = reopened.collection_cardinality(namespaced_capability).unwrap();
143
+ let count_namespaced = reopened
144
+ .collection_cardinality(namespaced_capability)
145
+ .unwrap();
144
146
 
145
147
  // If the persisted rows were stored under the non-namespaced key,
146
148
  // this will return 0 - demonstrating the mismatch
147
- println!(
148
- "Rows under '{}': {}",
149
- capability, count_after
150
- );
149
+ println!("Rows under '{}': {}", capability, count_after);
151
150
  println!(
152
151
  "Rows under '{}': {}",
153
152
  namespaced_capability, count_namespaced
@@ -218,12 +217,15 @@ mod tests {
218
217
  .unwrap();
219
218
 
220
219
  // Before restart, both formats should be queryable
221
- assert_eq!(db.collection_cardinality(&old_format_capability).unwrap(), 2);
222
- assert_eq!(db.collection_cardinality(&new_format_capability).unwrap(), 2);
223
- println!(
224
- "Before restart: old_format={}, new_format={}",
225
- 2, 2
220
+ assert_eq!(
221
+ db.collection_cardinality(&old_format_capability).unwrap(),
222
+ 2
223
+ );
224
+ assert_eq!(
225
+ db.collection_cardinality(&new_format_capability).unwrap(),
226
+ 2
226
227
  );
228
+ println!("Before restart: old_format={}, new_format={}", 2, 2);
227
229
  }
228
230
 
229
231
  // After restart, cardinality is recomputed from persisted log
@@ -2,7 +2,6 @@
2
2
  ///
3
3
  /// This module provides a debug/diagnostic HTTP endpoint that exposes cardinality
4
4
  /// reconstruction state without returning actual row data.
5
-
6
5
  use serde::{Deserialize, Serialize};
7
6
 
8
7
  #[derive(Debug, Clone, Serialize, Deserialize)]
@@ -162,11 +162,13 @@ mod tests {
162
162
  let probe = envelope_at("A", 2, "r2");
163
163
  let probe_bytes = serde_json::to_string(&probe).expect("serialize").len();
164
164
 
165
- let (mut executor, _dir) =
166
- receiver(CausalCapacity::new(usize::MAX, probe_bytes * 2 - 1));
165
+ let (mut executor, _dir) = receiver(CausalCapacity::new(usize::MAX, probe_bytes * 2 - 1));
167
166
  let outcomes = fill_with_blocked(&mut executor, "A", 3);
168
167
 
169
- assert!(matches!(outcomes[0], ReceiveOutcome::PendingDependencies { .. }));
168
+ assert!(matches!(
169
+ outcomes[0],
170
+ ReceiveOutcome::PendingDependencies { .. }
171
+ ));
170
172
  assert!(
171
173
  matches!(outcomes[1], ReceiveOutcome::CapacityDeferred { .. }),
172
174
  "the second envelope breaches a bound one byte short of two, got {:?}",
@@ -185,7 +187,10 @@ mod tests {
185
187
  let large = envelope_at("A", 3, &"L".repeat(4096));
186
188
  let small_bytes = serde_json::to_string(&small).expect("serialize").len();
187
189
  let large_bytes = serde_json::to_string(&large).expect("serialize").len();
188
- assert!(large_bytes > small_bytes * 2, "the fixture must actually differ in size");
190
+ assert!(
191
+ large_bytes > small_bytes * 2,
192
+ "the fixture must actually differ in size"
193
+ );
189
194
 
190
195
  let (mut executor, _dir) = receiver(CausalCapacity::new(usize::MAX, small_bytes + 16));
191
196
 
@@ -240,7 +245,11 @@ mod tests {
240
245
  .expect("submit");
241
246
 
242
247
  match outcome {
243
- SubmitOutcome::CapacityExceeded { limit_entries, pending_entries, .. } => {
248
+ SubmitOutcome::CapacityExceeded {
249
+ limit_entries,
250
+ pending_entries,
251
+ ..
252
+ } => {
244
253
  assert_eq!(limit_entries, 4);
245
254
  assert_eq!(pending_entries, 4);
246
255
  }
@@ -271,7 +280,10 @@ mod tests {
271
280
  let (mut executor, _dir) = receiver(CausalCapacity::new(2, usize::MAX));
272
281
 
273
282
  let outcomes = fill_with_blocked(&mut executor, "A", 3);
274
- assert!(matches!(outcomes[2], ReceiveOutcome::CapacityDeferred { .. }));
283
+ assert!(matches!(
284
+ outcomes[2],
285
+ ReceiveOutcome::CapacityDeferred { .. }
286
+ ));
275
287
  assert_eq!(executor.deferred_causal_count(), 1);
276
288
 
277
289
  // Deliver the missing dependency A:1, which releases the whole chain.
@@ -280,8 +292,16 @@ mod tests {
280
292
  .expect("receive");
281
293
  assert!(matches!(released, ReceiveOutcome::Applied { .. }));
282
294
 
283
- assert_eq!(executor.pending_causal_count(), 0, "nothing is left waiting");
284
- assert_eq!(executor.deferred_causal_count(), 0, "nothing is left deferred");
295
+ assert_eq!(
296
+ executor.pending_causal_count(),
297
+ 0,
298
+ "nothing is left waiting"
299
+ );
300
+ assert_eq!(
301
+ executor.deferred_causal_count(),
302
+ 0,
303
+ "nothing is left deferred"
304
+ );
285
305
  let applied = executor
286
306
  .get_replica_state("receiver")
287
307
  .map(|replica| replica.operations_applied)
@@ -300,7 +320,10 @@ mod tests {
300
320
  .get_replica_state("receiver")
301
321
  .map(|replica| replica.operations_applied)
302
322
  .unwrap_or(0);
303
- assert_eq!(applied, 0, "nothing may be applied while its dependency is missing");
323
+ assert_eq!(
324
+ applied, 0,
325
+ "nothing may be applied while its dependency is missing"
326
+ );
304
327
  assert_eq!(executor.causal_frontier().get("A"), 0);
305
328
  }
306
329
 
@@ -327,13 +350,20 @@ mod tests {
327
350
  // log a second time.
328
351
  let (mut executor, _dir) = receiver(CausalCapacity::new(1, usize::MAX));
329
352
  let outcomes = fill_with_blocked(&mut executor, "A", 2);
330
- assert!(matches!(outcomes[1], ReceiveOutcome::CapacityDeferred { .. }));
353
+ assert!(matches!(
354
+ outcomes[1],
355
+ ReceiveOutcome::CapacityDeferred { .. }
356
+ ));
331
357
 
332
358
  let again = executor
333
359
  .receive_replicated(message(envelope_at("A", 3, "r3")), zero_version())
334
360
  .expect("receive");
335
361
  assert_eq!(again, ReceiveOutcome::AlreadyKnown);
336
- assert_eq!(executor.deferred_causal_count(), 1, "still one deferred entry");
362
+ assert_eq!(
363
+ executor.deferred_causal_count(),
364
+ 1,
365
+ "still one deferred entry"
366
+ );
337
367
  }
338
368
 
339
369
  #[test]
@@ -377,7 +407,10 @@ mod tests {
377
407
  .expect("executor");
378
408
  executor.set_causal_capacity(CausalCapacity::new(2, usize::MAX));
379
409
  let outcomes = fill_with_blocked(&mut executor, "A", 3);
380
- assert!(matches!(outcomes[2], ReceiveOutcome::CapacityDeferred { .. }));
410
+ assert!(matches!(
411
+ outcomes[2],
412
+ ReceiveOutcome::CapacityDeferred { .. }
413
+ ));
381
414
  assert_eq!(executor.pending_causal_count(), 2);
382
415
  assert_eq!(executor.deferred_causal_count(), 1);
383
416
  }
@@ -392,13 +425,20 @@ mod tests {
392
425
  recovered.set_causal_capacity(CausalCapacity::new(2, usize::MAX));
393
426
  let replayed = recovered.load_from_disk(log_path).expect("recover");
394
427
 
395
- assert_eq!(replayed, 3, "all three envelopes were durable before the restart");
428
+ assert_eq!(
429
+ replayed, 3,
430
+ "all three envelopes were durable before the restart"
431
+ );
396
432
  assert_eq!(
397
433
  recovered.pending_causal_count(),
398
434
  2,
399
435
  "recovery honours the same bound the live path does"
400
436
  );
401
- assert_eq!(recovered.deferred_causal_count(), 1, "the excess is deferred, not lost");
437
+ assert_eq!(
438
+ recovered.deferred_causal_count(),
439
+ 1,
440
+ "the excess is deferred, not lost"
441
+ );
402
442
 
403
443
  // And the dependency still releases everything after the restart.
404
444
  recovered
@@ -446,7 +486,11 @@ mod tests {
446
486
  executor.causal_barrier.pending_keys()
447
487
  };
448
488
 
449
- assert_eq!(split(3), split(3), "the same log and bound recover identically");
489
+ assert_eq!(
490
+ split(3),
491
+ split(3),
492
+ "the same log and bound recover identically"
493
+ );
450
494
  assert_eq!(split(3).len(), 3);
451
495
  }
452
496
  }