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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
//! # gradatum-storage
//!
//! Storage trait abstraction avec backends OpenDAL (filesystem, S3, Azure Blob).
//!
//! ## Trait principal
//!
//! [`Storage`] — primitives async Read/Write/List/Delete/Stat/Exists.
//!
//! ## Implémentations
//!
//! - [`FileStorage`] — backend OpenDAL filesystem (feature `fs`, activée par défaut).
//! - Backend S3 (feature `s3`) — non implémenté (planned).
//! - Backend Azure Blob (feature `azblob`) — non implémenté (planned).
//!
//! ## Guard NFS (caveat C11)
//!
//! [`ensure_local_filesystem`] vérifie via `statfs(2)` que le chemin fourni n'est pas
//! sur un montage NFS. Appelé automatiquement par `FileStorage::new()`.
//! Retourne `Err(StorageError::Core(GradatumError::VaultOnNfs))` si NFS détecté.
//!
//! ## Stabilité
//!
//! `0.x` — pas de garantie de stabilité API. Voir
//! [`RELEASE-POLICY.md`](https://github.com/gradatum/gradatum/blob/main/RELEASE-POLICY.md).
//!
//! ## Ref
//!
//! - Spec §0.3 C11
// Re-exports publics.
pub use StorageError;
pub use ensure_local_filesystem;
pub use ;
pub use FileStorage;
/// Version de la crate (depuis `workspace.package.version`).
pub const VERSION: &str = env!;