43 lines
1.2 KiB
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.inspect(),
$unit,
$low,
$unit,
$high,
$unit,
2020-04-12 19:37:12 -04:00
),
$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.inspect(),
$unit,
$low,
$unit,
$high,
$unit,
2020-04-12 19:37:12 -04:00
),
$args.span(),
)
2020-04-12 19:37:12 -04:00
.into());
} else {
$arg
}
};
}