ralph_workflow/cloud/
mod.rs1pub mod io;
25pub mod io_redaction;
26pub mod redaction;
27pub mod runtime;
28pub mod types;
29
30pub use types::{CloudError, PipelineResult, ProgressEventType, ProgressUpdate};
31
32pub type HttpCloudReporter = crate::cloud::io::HttpCloudReporter;
33pub type HeartbeatGuard = crate::cloud::runtime::HeartbeatGuard;
34
35pub trait CloudReporter: Send + Sync {
36 fn report_progress(&self, update: &ProgressUpdate) -> Result<(), CloudError>;
37 fn heartbeat(&self) -> Result<(), CloudError>;
38 fn report_completion(&self, result: &PipelineResult) -> Result<(), CloudError>;
39}
40
41pub struct NoopCloudReporter;
42
43impl CloudReporter for NoopCloudReporter {
44 fn report_progress(&self, _update: &ProgressUpdate) -> Result<(), CloudError> {
45 Ok(())
46 }
47
48 fn heartbeat(&self) -> Result<(), CloudError> {
49 Ok(())
50 }
51
52 fn report_completion(&self, _result: &PipelineResult) -> Result<(), CloudError> {
53 Ok(())
54 }
55}
56
57#[cfg(any(test, feature = "test-utils"))]
58pub mod mock;
59#[cfg(any(test, feature = "test-utils"))]
60pub use mock::MockCloudReporter;