review: change roll result type to i32

This commit is contained in:
2025-11-16 09:52:44 +01:00
parent e12e954d19
commit 4d4810b52b
6 changed files with 11 additions and 11 deletions

View File

@@ -1,8 +1,8 @@
use crate::*;
impl Die {
pub fn roll(&self) -> u16 {
pub fn roll(&self) -> i32 {
let mut rng = rand::rng();
rng.random_range(1..=self.sides) as u16
rng.random_range(1..=self.sides) as i32
}
}

View File

@@ -2,7 +2,7 @@ use crate::*;
impl Handful {
pub fn roll(self) -> Outcome {
let mut die_rolls = Vec::<u16>::new();
let mut die_rolls = Vec::<i32>::new();
for die in self.dice {
die_rolls.push(die.roll());
}

View File

@@ -1,10 +1,10 @@
use crate::*;
fn max_of(values: Vec<u16>) -> Result<Outcome, FailedTo> {
fn max_of(values: Vec<i32>) -> Result<Outcome, FailedTo> {
if values.is_empty() {
return Err(FailedTo::ProcessInput);
}
let ret = Ok(Outcome::Scalar(u16::MIN));
let ret = Ok(Outcome::Scalar(i32::MIN));
ret.and_then(|_| {
values
.iter()

View File

@@ -1,10 +1,10 @@
use crate::*;
fn min_of(values: Vec<u16>) -> Result<Outcome, FailedTo> {
fn min_of(values: Vec<i32>) -> Result<Outcome, FailedTo> {
if values.is_empty() {
return Err(FailedTo::ProcessInput);
}
Ok(Outcome::Scalar(u16::MIN)).and_then(|_| {
Ok(Outcome::Scalar(i32::MIN)).and_then(|_| {
values
.iter()
.min()

View File

@@ -1,6 +1,6 @@
use crate::*;
fn sum_of(values: Vec<u16>) -> Result<Outcome, FailedTo> {
fn sum_of(values: Vec<i32>) -> Result<Outcome, FailedTo> {
if values.is_empty() {
return Ok(Outcome::Scalar(0));
}
@@ -10,7 +10,7 @@ fn sum_of(values: Vec<u16>) -> Result<Outcome, FailedTo> {
Outcome::List(_) => Err(FailedTo::ProcessInput),
Outcome::Scalar(acc) => acc
.checked_add(value)
.map(|new_acc: u16| Outcome::Scalar(new_acc))
.map(|new_acc: i32| Outcome::Scalar(new_acc))
.ok_or(FailedTo::SumValues),
})
}

View File

@@ -4,8 +4,8 @@ use std::fmt::Display;
#[derive(Debug, PartialEq, PartialOrd, Eq, Ord, Clone, Hash)]
pub enum E {
Scalar(u16),
List(Vec<u16>),
Scalar(i32),
List(Vec<i32>),
}
impl Display for E {