Skip to main content

appcore_provider/
lib.rs

1// =============================================================================
2//        #######
3//     ###       ###     F: lib.rs
4//    ##   ## ##   ##    P: AppCore-Runtime
5//         ## ##
6//                       C: 2026/07/22 13:21:42 by dnettoRaw
7//    ##   ## ##   ##    U: 2026/08/02 12:07:11 by dnettoRaw
8//      ###########      S: 1.0.1-rc.8
9// =============================================================================
10
11//! Provider factory and deployment composition contracts.
12
13#![deny(missing_docs)]
14
15mod context;
16mod coordination;
17mod error;
18mod factory;
19mod job;
20mod plan;
21mod role;
22mod secret;
23mod shared_lease;
24mod shared_lease_state;
25
26pub use context::ProviderContext;
27pub use coordination::{
28    CoordinationStoreProvider, FileCoordinationStore, InMemoryCoordinationStore,
29    COORDINATION_SCHEMA_VERSION, COORDINATION_TABLES,
30};
31pub use error::{ProviderError, ProviderResult};
32pub use factory::{ProviderFactory, ProviderRegistry};
33pub use job::{JobAtomicity, JobCompletion, JobLease, JobProvider, JobSpec};
34pub use plan::DeploymentProviderPlan;
35pub use role::ProviderRole;
36pub use secret::{ResolvedSecret, SecretProvider};
37pub use shared_lease::{
38    FileLeaseRepository, LeaseDecision, LeaseHeartbeat, LeaseOwner, LeasePolicy, LeaseRepository,
39    LeaseToken, SharedResourceLease,
40};
41
42/// Shared coordination-store provider selected by a deployment.
43pub type SharedCoordinationStore = std::sync::Arc<dyn CoordinationStoreProvider>;
44
45#[cfg(test)]
46mod tests;