pub trait Statusable {
// Required method
fn status(&self) -> Status;
// Provided method
fn status_detail(&self) -> Option<StatusDetail> { ... }
}Expand description
Status reporting for monitoring.
Managers need to know the status of their children. This enables:
- UI display: Show progress to user
- Health monitoring: Detect stuck/failed children
- Orchestration: Coordinate parallel work
§Status Lifecycle
Initializing → Idle ⇄ Running → Completed
↓ ↓
Paused Error
↓ ↓
Aborted ← ───┘§Example
use orcs_component::{Statusable, Status, StatusDetail, Progress};
struct Compiler {
status: Status,
files_compiled: u64,
total_files: u64,
}
impl Statusable for Compiler {
fn status(&self) -> Status {
self.status
}
fn status_detail(&self) -> Option<StatusDetail> {
Some(StatusDetail {
message: Some("Compiling...".into()),
progress: Some(Progress::new(self.files_compiled, Some(self.total_files))),
metadata: Default::default(),
})
}
}Required Methods§
Provided Methods§
Sourcefn status_detail(&self) -> Option<StatusDetail>
fn status_detail(&self) -> Option<StatusDetail>
Returns detailed status information.
Optional - returns None by default.
Implement for UI display or debugging.