Skip to main content

harmos_storage/
lib.rs

1/* ***
2 *
3 * Harmos
4 *
5 * SPDX-License-Identifier: Apache-2.0
6 *
7 * ***
8 */
9
10/* === Modules === */
11
12mod admissions;
13
14pub mod aggregate;
15pub mod arrow;
16mod backend;
17mod batch;
18mod batching;
19mod capacity;
20pub mod config;
21mod deletion;
22pub mod directory;
23mod error;
24pub mod execution;
25mod file_batch;
26mod file_capture;
27mod file_checkpoint;
28mod file_follow;
29mod file_hash;
30mod file_production;
31mod file_reads;
32pub mod follow;
33mod frozen_file;
34pub mod json;
35mod local;
36mod manager;
37mod object_admissions;
38mod objects;
39mod opened_capture;
40pub mod query;
41mod queue;
42mod read_batch;
43mod receipts;
44mod schema_encoding;
45mod selection;
46pub mod signal;
47mod snapshot;
48mod staging;
49pub mod state;
50mod worker;
51pub mod writes;
52
53/* === Re-Exports === */
54
55pub use backend::{BackendSnapshot, ReadLimits, ScanPage, StorageBackend, StorageBackends, StorageFuture};
56pub use batch::{FileChunk, StorageBatch};
57pub use config::{StorageFilesystemSettings, StorageRequestSettings, StorageResponseSettings, StorageSettings};
58pub use directory::{DirectoryReader, DirectoryWatcher};
59pub use error::{BackendFailure, Error, Result};
60pub use file_batch::{FileReadBatch, FileReadEvent, FileReadSlice};
61pub use file_capture::FileCapture;
62pub use file_checkpoint::FileCheckpoint;
63pub use file_follow::{FileFollow, FileFollower};
64pub use file_production::ProductionFollower;
65pub use file_reads::{FileRead, FileReader};
66pub use frozen_file::FrozenFile;
67pub use harmos_domain::model::storage::files;
68pub use harmos_domain::model::storage::{
69    ByteRange, CaptureConsistency, FileBatch, FileCompletion, FileEvent, FileHash, FileMetadata, FilePhase, FileProducer, FileProgress,
70    FileReference, FileSession, FileSource, FollowStart, IdentityKind, IdentitySelection, MutationId, MutationWindow, ObjectCatalog,
71    ObjectDefinition, ObjectDefinitions, ObjectEntry, ObjectKey, ObjectPoint, ObjectReceipt, ObjectRetention, ObjectRevision, ObjectValue,
72    ObjectVersion, ObjectVersionToken, PayloadEncoding, RecordInput, RecordWrite, RecoveryPosition, SchemaInfo, SchemaInput, SchemaKey,
73    StagedFile, StorageCursor, StorageInfo, StoreHistory, StoredIdentity, StoredObject, StoredRecord, StoredRow, StreamInput, StreamWrite,
74};
75pub use json::{JsonStorage, JsonStorageSettings};
76pub use manager::{ErasedCatalog, StorageManager, StorageMetrics, WorkerOwner, encoded_size};
77pub use objects::ObjectGroup;
78pub use opened_capture::OpenedCapture;
79pub use query::{ObjectRead, ObjectReader, Query, QueryReader, RecordRead, RecordReader, StreamRead, StreamReader};
80pub use read_batch::{ReadBatch, ReadPages};
81pub use receipts::{MutationReceipt, MutationValue};
82pub use staging::StorageFile;
83
84pub use harmos_domain::{Aggregate, Identifier, MemorySize, Message, btree_map_memory, schema};
85pub use staging::checkpoint::FileSave;
86pub use worker::Worker;
87pub use writes::StorageSchema;
88
89/* === Imports === */
90
91// Standard Library Imports
92
93// Third Party Imports
94extern crate self as harmos_storage;
95
96// Local Imports
97// Internal Paths Refer To This Crate's One Canonical Engine Namespace.
98use crate as storage;
99
100/* === Constants === */
101
102/* === Macros === */
103
104/* === Type Aliases === */
105
106/* === Structs === */
107
108/* === Enums === */
109
110/* === Traits === */
111
112/* === Implementations === */
113
114/* === Public Functions === */
115
116/* === Private Functions === */
117
118/* === Tests === */
119
120#[cfg(test)]
121#[allow(dead_code, reason = "capacity invariants use the shared in-memory storage backends")]
122#[path = "../tests/support/storage.rs"]
123mod test_backend;