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;
22mod error;
23pub mod execution;
24mod file_checkpoint;
25mod file_follow;
26mod file_reads;
27pub mod follow;
28mod manager;
29mod memory;
30mod object_admissions;
31mod objects;
32pub mod query;
33mod queue;
34mod receipts;
35mod schema_encoding;
36mod selection;
37pub mod signal;
38mod snapshot;
39mod staging;
40pub mod state;
41mod worker;
42pub mod writes;
43
44/* === Re-Exports === */
45
46pub use backend::{BackendSnapshot, ReadLimits, ScanPage, StorageBackend, StorageBackends, StorageFuture};
47pub use batch::{StorageBatch, StorageEntry, StoragePart};
48pub use config::{StorageBudget, StorageRequestSettings, StorageResponseSettings, StorageSettings};
49pub use error::{BackendFailure, Error, Result};
50pub use file_checkpoint::FileCheckpoint;
51pub use file_follow::FileFollower;
52pub use file_reads::FileReader;
53pub use harmos_domain::model::storage::files;
54pub use harmos_domain::model::storage::{
55    ByteRange, FileBatch, FileCompletion, FileMetadata, FilePhase, FileProducer, FileProgress, FileReference, FileSession, IdentityKind,
56    IdentitySelection, MutationId, MutationWindow, ObjectCatalog, ObjectDefinition, ObjectDefinitions, ObjectEntry, ObjectKey, ObjectPoint,
57    ObjectReceipt, ObjectRetention, ObjectRevision, ObjectValue, ObjectVersion, ObjectVersionToken, PayloadEncoding, RecordInput,
58    RecordWrite, RecoveryPosition, SchemaInfo, SchemaInput, SchemaKey, StagedFile, StorageCursor, StorageInfo, StoreHistory,
59    StoredIdentity, StoredObject, StoredRecord, StoredRow, StreamInput, StreamWrite,
60};
61pub use manager::{ErasedCatalog, StorageManager, StorageMetrics, WorkerOwner, encoded_size};
62pub use objects::ObjectGroup;
63pub use query::{ObjectRead, ObjectReader, QueryReader, RecordRead, RecordReader};
64pub use receipts::{MutationReceipt, MutationValue};
65pub use staging::StorageFile;
66
67pub use harmos_domain::{Aggregate, Identifier, MemorySize, Message, btree_map_memory, schema};
68pub use staging::checkpoint::FileSave;
69pub use worker::Worker;
70pub use writes::StorageSchema;
71
72/* === Imports === */
73
74// Standard Library Imports
75
76// Third Party Imports
77extern crate self as harmos_storage;
78
79// Local Imports
80// Internal Paths Refer To This Crate's One Canonical Engine Namespace.
81use crate as storage;
82
83/* === Constants === */
84
85/* === Macros === */
86
87/* === Type Aliases === */
88
89/* === Structs === */
90
91/* === Enums === */
92
93/* === Traits === */
94
95/* === Implementations === */
96
97/* === Public Functions === */
98
99/* === Private Functions === */
100
101/* === Tests === */
102
103#[cfg(test)]
104#[allow(dead_code, reason = "capacity invariants use the shared in-memory storage backends")]
105#[path = "../tests/support/storage.rs"]
106mod test_backend;