Expand description
Reusable storage layer: traits, a doublets-backed implementation and advisory locking helpers.
See LinksStorage for the abstraction the transactions layer is
written against, and DoubletsStorage for the file-mapped
doublets implementation.
Re-exports§
pub use lock::lock_file_path;pub use lock::FileLock;pub use lock::LockMode;
Modules§
- decorators
- The upstream
doubletsdecorator layer, re-exported so downstream crates can stack decorators onto aDoubletsStoragethroughDoubletsStorage::map_storewithout depending ondoubletsdirectly (and without risking a version mismatch). Zero-cost decorators that add policy to anyDoubletsstore. - lock
- Advisory file locking for multi-process access to a links database.
Structs§
- Doublets
Storage - A
LinksStorageover anydoubletsstore. - Persistent
File Mapped - A
FileMappedregion that does not wipe pre-existing file contents whendoubletsgrows it. - Storage
Revision - Cheap fingerprint of a database file, used to answer “has anyone else written since I last looked?” without reparsing.
Traits§
- Links
Storage - A store of links addressed by
T, expressed in terms of ownedGenericLink<T>values so that both in-memory maps and memory-mapped doublets stores can implement it. - Links
Storage Ref - Extension implemented by stores that keep links resident in memory and can therefore lend out references instead of copies.
Type Aliases§
- File
Mapped Unit Store - The file-mapped
doubletsstore used byDoubletsStorage::open. - Resolved
File Mapped Unit Store - The file-mapped store wrapped in the upstream decorator stack that C#
applies by default, produced by
DoubletsStorage::with_automatic_uniqueness_and_usages_resolution.