1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
//! Persistence and concurrency-guard layer for trusty-review (issue #582).
//!
//! Why: live posting needs two coordination mechanisms beyond the review
//! pipeline itself — a durable cross-process dedup claim store (so retries and
//! restarts do not re-review the same head SHA) and an in-process in-flight
//! guard (so concurrent webhook deliveries for the same PR do not race).
//! Grouping them under one module keeps the storage concerns out of the
//! pipeline modules.
//!
//! What: re-exports the `dedup` SHA-keyed claim store and the `in_flight`
//! RAII guard registry.
//!
//! Test: each submodule carries its own unit tests.
pub use ;
pub use ;
/// Classify a `redb::DatabaseError` as an incompatible / unreadable file format
/// (issue #702).
///
/// Why: redb 4.x cannot open a redb-2.x file (and rejects foreign/garbage files
/// outright). The store layer recovers by rebuilding empty, but must do so only
/// for genuine format problems — never for transient I/O or lock contention.
/// What: returns `true` for `UpgradeRequired` / `RepairAborted` /
/// `Storage(Corrupted)` / `Storage(Io(InvalidData))`; `false` otherwise.
/// Test: `dedup::tests::incompatible_dedup_db_is_recreated` exercises the
/// `InvalidData` path end-to-end.
pub