22 lines
567 B
Rust
22 lines
567 B
Rust
use crate::*;
|
|
|
|
impl Outcome {
|
|
pub fn keep_lowest(self, dice_num: u16) -> Result<Outcome, FailedTo> {
|
|
if dice_num == 0 {
|
|
return Err(FailedTo::ProcessInput);
|
|
}
|
|
match self {
|
|
Outcome::Scalar(value) => Ok(Outcome::List(vec![value])),
|
|
Outcome::List(mut values) => {
|
|
values.sort();
|
|
Ok(Outcome::List(
|
|
values.into_iter().take(dice_num as usize).collect(),
|
|
))
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// #[cfg(test)]
|
|
// mod unit_tests { use super::*; }
|