31 lines
998 B
Rust
Raw Normal View History

macro_rules! bound {
2020-04-12 19:37:12 -04:00
($args:ident, $name:literal, $arg:ident, $unit:ident, $low:literal, $high:literal) => {
if $arg > Number::from($high) || $arg < Number::from($low) {
2020-04-12 19:37:12 -04:00
return Err((
format!(
"${}: Expected {}{} to be within {}{} and {}{}.",
$name, $arg, $unit, $low, $unit, $high, $unit,
),
$args.span(),
)
2020-04-12 19:37:12 -04:00
.into());
} else {
$arg
}
};
2020-04-12 19:37:12 -04:00
($args:ident, $name:literal, $arg:ident, $unit:path, $low:literal, $high:literal) => {
if $arg > Number::from($high) || $arg < Number::from($low) {
2020-04-12 19:37:12 -04:00
return Err((
format!(
"${}: Expected {}{} to be within {}{} and {}{}.",
$name, $arg, $unit, $low, $unit, $high, $unit,
),
$args.span(),
)
2020-04-12 19:37:12 -04:00
.into());
} else {
$arg
}
};
}