canic_core/api/fixture_provisioning/mod.rs
1//! Module: api::fixture_provisioning
2//!
3//! Responsibility: expose the registered application importer and bounded consumer step.
4//! Does not own: endpoint authentication, database writes or autonomous retry scheduling.
5//! Boundary: delegates delivery and receipt observation to the provisioning workflow.
6
7use crate::dto::fixture_provisioning::{FixtureImportError, FixtureProvisioningStatus};
8pub use crate::ops::fixture_importer::FixtureImporter;
9
10/// Application-facing fixture consumer; call registration from the synchronous lifecycle participant.
11pub struct FixtureProvisioningApi;
12
13impl FixtureProvisioningApi {
14 /// Observe the existing fetch lease in an internal qualification canister.
15 #[cfg(feature = "internal-test-fixtures")]
16 #[must_use]
17 pub fn fetch_in_flight() -> bool {
18 crate::workflow::fixture_provisioning::fetch_in_flight()
19 }
20
21 /// Register one application participant after database restoration on each fresh heap.
22 pub fn register(importer: &'static dyn FixtureImporter) -> Result<(), FixtureImportError> {
23 crate::workflow::fixture_provisioning::register(importer)
24 }
25
26 /// Observe the selected data prerequisite and exact application-owned completion receipt.
27 pub fn status() -> Result<FixtureProvisioningStatus, FixtureImportError> {
28 crate::workflow::fixture_provisioning::status()
29 }
30}