pub mod io;
pub mod io_redaction;
pub mod redaction;
pub mod runtime;
pub mod types;
pub use types::{CloudError, PipelineResult, ProgressEventType, ProgressUpdate};
pub type HttpCloudReporter = crate::cloud::io::HttpCloudReporter;
pub type HeartbeatGuard = crate::cloud::runtime::HeartbeatGuard;
pub trait CloudReporter: Send + Sync {
fn report_progress(&self, update: &ProgressUpdate) -> Result<(), CloudError>;
fn heartbeat(&self) -> Result<(), CloudError>;
fn report_completion(&self, result: &PipelineResult) -> Result<(), CloudError>;
}
pub struct NoopCloudReporter;
impl CloudReporter for NoopCloudReporter {
fn report_progress(&self, _update: &ProgressUpdate) -> Result<(), CloudError> {
Ok(())
}
fn heartbeat(&self) -> Result<(), CloudError> {
Ok(())
}
fn report_completion(&self, _result: &PipelineResult) -> Result<(), CloudError> {
Ok(())
}
}
#[cfg(any(test, feature = "test-utils"))]
pub mod mock;
#[cfg(any(test, feature = "test-utils"))]
pub use mock::MockCloudReporter;