use super::{DRIFT_EXIT, Origin, SYNTHETIC_EXIT, YOG_DRIFT, YOG_STEP};
#[derive(Debug, Clone, Default, PartialEq, Eq)]
pub struct OpEntry {
pub ts: String,
pub argv: Vec<String>,
pub cwd: String,
pub exit: i32,
pub stdout: String,
pub stderr: String,
pub origin: Origin,
}
impl OpEntry {
pub fn synthetic_failure(
ts: String,
argv: Vec<String>,
cwd: String,
stderr: String,
origin: Origin,
) -> Self {
Self {
ts,
argv,
cwd,
exit: SYNTHETIC_EXIT,
stdout: String::new(),
stderr,
origin,
}
}
pub fn step_failure(
ts: String,
step: &str,
cwd: String,
stderr: String,
origin: Origin,
) -> Self {
Self::synthetic_failure(
ts,
vec![YOG_STEP.to_string(), step.to_string()],
cwd,
stderr,
origin,
)
}
pub fn step_done(ts: String, step: &str, cwd: String, origin: Origin) -> Self {
Self {
ts,
argv: vec![YOG_STEP.to_string(), step.to_string()],
cwd,
exit: 0,
stdout: String::new(),
stderr: String::new(),
origin,
}
}
pub fn drift(ts: String, kind: &str, cwd: String, roots: String) -> Self {
Self {
ts,
argv: vec![YOG_DRIFT.to_string(), kind.to_string()],
cwd,
exit: DRIFT_EXIT,
stdout: String::new(),
stderr: roots,
origin: Origin::World,
}
}
}