stock shorthand

This commit is contained in:
2026-05-15 12:43:18 -07:00
parent 792c9acba3
commit 334084e4df
2 changed files with 9 additions and 0 deletions
+6
View File
@@ -52,6 +52,12 @@ pub struct KlondikeInstruction {
pub dst: KlondikePileId,
}
impl KlondikeInstruction {
pub fn stock() -> Self {
Self {
src: KlondikePileId::Stock,
dst: KlondikePileId::Stock,
}
}
fn next(self) -> Option<Self> {
let KlondikeInstruction { src, dst } = self;
if let Some(next_dst) = dst.next() {
+3
View File
@@ -122,6 +122,7 @@ enum SessionInstruction {
New,
Undo,
Hint,
Stock,
Klondike(KlondikeInstruction),
}
impl core::str::FromStr for SessionInstruction {
@@ -131,6 +132,7 @@ impl core::str::FromStr for SessionInstruction {
"NEW" | "new" => Self::New,
"UNDO" | "undo" => Self::Undo,
"HINT" | "hint" => Self::Hint,
"s" => Self::Stock,
other => {
let Parsed(ki) = other.parse()?;
Self::Klondike(ki)
@@ -162,6 +164,7 @@ fn main() -> Result<(), std::io::Error> {
println!("{instruction:?}");
}
}
SessionInstruction::Stock => session.process_instruction(KlondikeInstruction::stock()),
SessionInstruction::Klondike(instruction) => {
if session.is_instruction_valid(instruction) {
session.process_instruction(instruction);