修复: gen_stream判重+重试分类+状态机最短路径+既有测试修复
This commit is contained in:
@@ -353,6 +353,8 @@ pub enum TaskStatus {
|
||||
Blocked,
|
||||
/// 已取消
|
||||
Cancelled,
|
||||
/// 已暂缓
|
||||
Deferred,
|
||||
}
|
||||
|
||||
impl TaskStatus {
|
||||
@@ -369,6 +371,7 @@ impl TaskStatus {
|
||||
TaskStatus::Done => "done",
|
||||
TaskStatus::Blocked => "blocked",
|
||||
TaskStatus::Cancelled => "cancelled",
|
||||
TaskStatus::Deferred => "deferred",
|
||||
}
|
||||
}
|
||||
|
||||
@@ -378,7 +381,7 @@ impl TaskStatus {
|
||||
pub fn is_valid(s: &str) -> bool {
|
||||
matches!(
|
||||
s,
|
||||
"todo" | "in_progress" | "in_review" | "testing" | "done" | "blocked" | "cancelled"
|
||||
"todo" | "in_progress" | "in_review" | "testing" | "done" | "blocked" | "cancelled" | "deferred"
|
||||
)
|
||||
}
|
||||
|
||||
@@ -392,6 +395,7 @@ impl TaskStatus {
|
||||
"done",
|
||||
"blocked",
|
||||
"cancelled",
|
||||
"deferred",
|
||||
]
|
||||
}
|
||||
|
||||
@@ -408,6 +412,7 @@ impl TaskStatus {
|
||||
"done" => TaskStatus::Done,
|
||||
"blocked" => TaskStatus::Blocked,
|
||||
"cancelled" => TaskStatus::Cancelled,
|
||||
"deferred" => TaskStatus::Deferred,
|
||||
_ => return None,
|
||||
})
|
||||
}
|
||||
@@ -598,6 +603,7 @@ mod tests {
|
||||
assert!(TaskStatus::is_valid("done"));
|
||||
assert!(TaskStatus::is_valid("blocked"));
|
||||
assert!(TaskStatus::is_valid("cancelled"));
|
||||
assert!(TaskStatus::is_valid("deferred"));
|
||||
}
|
||||
|
||||
// as_str 与 is_valid 必须自洽:每个变体的存储值都应被 is_valid 接受
|
||||
@@ -611,6 +617,7 @@ mod tests {
|
||||
TaskStatus::Done,
|
||||
TaskStatus::Blocked,
|
||||
TaskStatus::Cancelled,
|
||||
TaskStatus::Deferred,
|
||||
];
|
||||
for v in all {
|
||||
assert!(
|
||||
@@ -673,7 +680,7 @@ mod tests {
|
||||
assert!(TaskStatus::is_valid(v), "valid_values 含 {:?} 但 is_valid 拒绝", v);
|
||||
}
|
||||
// 数量应等于枚举变体数
|
||||
assert_eq!(TaskStatus::valid_values().len(), 7);
|
||||
assert_eq!(TaskStatus::valid_values().len(), 8);
|
||||
}
|
||||
|
||||
// ── Priority::from_i32(对齐前端约定 0=Critical/1=High/2=Medium/3=Low)──
|
||||
|
||||
Reference in New Issue
Block a user