Skip to main content

linkrs_storage/client/
storage_client.rs

1use super::{
2    StorageAdmin, StorageAuthOps, StorageCommitOps, StorageGcOps, StorageOperationContextOps,
3    StoragePersistenceOps, StorageReader, StorageRecoveryOps, StorageSchemaContextOps,
4    StorageSchemaOps, StorageWriter,
5};
6use crate::stats_reader::ColumnStatsReader;
7use crate::{AutoCommitBatchOps, AutoCommitGroupOps, UndoTarget};
8
9/// Combined storage interface with full read/write/schema/auth/admin capabilities.
10///
11/// Runtime context accessors such as schema, transaction, and sync context are kept
12/// as separate traits so higher-level components only depend on them when necessary.
13pub trait StorageClient:
14    StorageReader
15    + StorageWriter
16    + StorageSchemaOps
17    + StorageSchemaContextOps
18    + StorageOperationContextOps
19    + StorageCommitOps
20    + StorageAuthOps
21    + StorageAdmin
22    + StoragePersistenceOps
23    + StorageRecoveryOps
24    + StorageGcOps
25    + UndoTarget
26    + ColumnStatsReader
27    + AutoCommitBatchOps
28    + AutoCommitGroupOps
29    + Send
30    + Sync
31    + std::fmt::Debug
32{
33}
34
35impl<T> StorageClient for T where
36    T: StorageReader
37        + StorageWriter
38        + StorageSchemaOps
39        + StorageSchemaContextOps
40        + StorageOperationContextOps
41        + StorageCommitOps
42        + StorageAuthOps
43        + StorageAdmin
44        + StoragePersistenceOps
45        + StorageRecoveryOps
46        + StorageGcOps
47        + UndoTarget
48        + ColumnStatsReader
49        + AutoCommitBatchOps
50        + AutoCommitGroupOps
51        + Send
52        + Sync
53        + std::fmt::Debug
54{
55}