aster_forge_cloud_files_core/
lib.rs

1//! Product-neutral contracts for native cloud-files integrations.
2//!
3//! This crate defines the operating-system-independent value model shared by Windows Cloud Files,
4//! Apple File Provider, and Linux FUSE adapters. Product crates provide authentication, remote API
5//! DTO mapping, permissions, root/account policy, and user-visible conflict behavior.
6//!
7//! The current Phase 1 surface includes scoped identities, opaque revisions and cursors,
8//! capability negotiation, read-only backend ports, durable checkpoint/mutation store contracts,
9//! runtime-neutral hydration work sharing with waiter-scoped cancellation, and revision-bound
10//! content-storage ownership with guarded eviction, recoverable provider-cache writes, immutable
11//! local generations, resumable upload recovery, a runtime-neutral upload runner, and a generic
12//! durable mutation runner with remote-outcome reconciliation. Native platform validation has
13//! started in the sibling platform crates while these product-neutral contracts remain
14//! platform-independent.
15#![cfg_attr(
16    not(test),
17    deny(
18        clippy::unwrap_used,
19        clippy::unreachable,
20        clippy::expect_used,
21        clippy::panic,
22        clippy::unimplemented,
23        clippy::todo
24    )
25)]
26
27pub mod backend;
28pub mod backend_error;
29pub mod cache_write;
30pub mod capabilities;
31pub mod change;
32pub mod content_storage;
33pub mod cursor;
34pub mod error;
35pub mod hydration;
36pub mod identity;
37pub mod item;
38pub mod local_content;
39pub mod mutation;
40pub mod revision;
41pub mod store;
42pub mod upload;
43
44pub use backend::{
45    ByteRange, CloudContentBackend, CloudFilesBackend, CloudMetadataBackend, ContentReadRange,
46    ContentReadRequest, ContentReadResponse,
47};
48pub use backend_error::{BackendResult, CloudBackendError, CloudBackendErrorKind, RetryAdvice};
49pub use cache_write::{
50    ContentCacheWriteExtent, ContentCacheWriteIntent, ContentCacheWriteOperationId,
51    ContentCacheWriteRecord, ContentCacheWriteRecordTransition, ContentCacheWriteState,
52};
53pub use capabilities::{
54    Alignment, AnchoredChangeCapabilities, CancellationLevel, ChangeCapabilities,
55    CloudFilesCapabilities, CloudFilesLimits, ContentStorageModes, EnumerationCapabilities,
56    EvictionCapabilities, HydrationCapabilities, IdentityCapabilities, MaterializationCapabilities,
57    MutationCapabilities, NamingCapabilities, RangeHydrationCapabilities, RevisionCapabilities,
58};
59pub use change::{ChangeBatch, ChangePage, ChangeResetReason, CloudChange};
60pub use content_storage::{
61    ContentCacheKey, ContentEvictionBegin, ContentEvictionBlocker, ContentEvictionDecision,
62    ContentEvictionIntent, ContentEvictionOperationId, ContentEvictionPhysicalEffect,
63    ContentEvictionPlan, ContentEvictionRecord, ContentEvictionRecordTransition,
64    ContentEvictionState, ContentEvictionTarget, ContentLeaseCounts, ContentLeaseId,
65    ContentLeaseKind, ContentRangeSet, ContentStorageEntry, ContentStorageMode,
66    DirtyContentTransition, PlatformMaterializationState,
67};
68pub use cursor::{ChangeCursor, DirectoryCookie, PageCursor};
69pub use error::{CloudFilesCoreError, Result};
70pub use hydration::{
71    HydrationCancellationHandle, HydrationCancellationOutcome, HydrationCoordinator,
72    HydrationError, HydrationLimits, HydrationRequest, HydrationResult, HydrationWaiter,
73};
74pub use identity::{CloudItemId, CloudItemKey, CloudNamespaceId, CloudRootId, CloudScope};
75pub use item::{CloudContentMetadata, CloudItem, CloudItemKind, CloudItemPage};
76pub use local_content::{LocalContentGeneration, LocalContentReference, LocalContentSnapshot};
77pub use mutation::{
78    CloudMutationBackend, DesiredMutation, IdempotencyKey, MutationIntent, MutationOrigin,
79    MutationPreconditions, MutationRecord, MutationRecordTransition, MutationRemoteOutcome,
80    MutationRetryMetadata, MutationRunError, MutationRunOutcome, MutationRunResult, MutationRunner,
81    MutationState, OperationId, PlatformRequestCorrelation, RemoteReconciliationKey,
82    SessionGeneration, SessionState,
83};
84pub use revision::{ContentDigest, ContentDigestAlgorithm, ContentRevision, MetadataRevision};
85pub use store::{
86    ChangeBatchId, ChangeCheckpointStore, ChangeCursorCheckpoint, CloudFilesStoreError,
87    CloudFilesStoreErrorKind, ContentCacheWriteStore, ContentStorageStore, ContentUploadStore,
88    MutationJournalStore, PersistedChangeBatch, PersistedChangeBatchState, RecoveryPage,
89    StoreResult, StoreWriteStatus,
90};
91pub use upload::{
92    CloudContentUploadBackend, ContentUploadChunk, ContentUploadChunkAck, ContentUploadIntent,
93    ContentUploadRecord, ContentUploadRecordTransition, ContentUploadRunError,
94    ContentUploadRunOutcome, ContentUploadRunResult, ContentUploadRunner, ContentUploadSession,
95    ContentUploadSessionId, ContentUploadState, LocalContentSnapshotReader,
96};