Capacity remediation reports convert reserve into a direct action. This program chooses hold, shift, or shed from a selected reserve.

Program

Play the program to choose reserve and watch the operational action change.

reserve
capacity_shift_report.rs
Replay: real traced execution (multi-file project)
fn main() {
    let reserve = 8;
    let action = if reserve >= 12 {
        "hold"
    } else if reserve >= 6 {
        "shift"
    } else {
        "shed"
    };
    let line = format!("reserve={reserve} {action}");
    println!("{line}");
}
fn main() {
    let reserve = 4;
    let action = if reserve >= 12 {
        "hold"
    } else if reserve >= 6 {
        "shift"
    } else {
        "shed"
    };
    let line = format!("reserve={reserve} {action}");
    println!("{line}");
}
fn main() {
    let reserve = 16;
    let action = if reserve >= 12 {
        "hold"
    } else if reserve >= 6 {
        "shift"
    } else {
        "shed"
    };
    let line = format!("reserve={reserve} {action}");
    println!("{line}");
}
  1. reserve ← 8, action ← "shift", line ← "reserve=8 shift"

    1fn main() {2    let reserv→ 8e = 8; //@reserve=8, 16, 43    let actio→ "shift"n = if reserv8e >= 12 {4        "hold"5    } else if reserv8e >= 6 {6        "shift"7    } else {8        "shed"9    };10    let lin→ "reserve=8 shift"e = format!("reserve={reserve} {action}");11    println!("{line}");12}
    outputreserve=8 shift
  1. reserve ← 4, action ← "shed", line ← "reserve=4 shed"

    1fn main() {2    let reserv→ 4e = 4;3    let actio→ "shed"n = if reserv4e >= 12 {4        "hold"5    } else if reserv4e >= 6 {6        "shift"7    } else {8        "shed"9    };10    let lin→ "reserve=4 shed"e = format!("reserve={reserve} {action}");11    println!("{line}");12}
    outputreserve=4 shed
  1. reserve ← 16, action ← "hold", line ← "reserve=16 hold"

    1fn main() {2    let reserv→ 16e = 16;3    let actio→ "hold"n = if reserv16e >= 12 {4        "hold"5    } else if reserv16e >= 6 {6        "shift"7    } else {8        "shed"9    };10    let lin→ "reserve=16 hold"e = format!("reserve={reserve} {action}");11    println!("{line}");12}
    outputreserve=16 hold
reserve action The report maps reserve to one of three operator actions.
hold Large reserve keeps the current allocation in place.
shed Low reserve makes the remediation explicit instead of hiding it in prose.