Skip to content

Commit

Permalink
Functions replaced with macros for better error messages
Browse files Browse the repository at this point in the history
  • Loading branch information
mphypermynds committed Aug 5, 2022
1 parent 5697cd2 commit 54c97ae
Show file tree
Hide file tree
Showing 14 changed files with 179 additions and 214 deletions.
23 changes: 9 additions & 14 deletions src/assert_err.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,25 +4,20 @@ macro_rules! assert_err {
($cond:expr $(,)?) => {
match $cond {
Err(err) => err,
ok @ Ok(_) => {
$crate::panicking::assert_failed(
$crate::panicking::Value::Str("`Err(..)`"),
$crate::panicking::Value::Ref(&ok),
None,
);
}
ok @ Ok(_) => $crate::assert_failed!(
$crate::panicking::Msg("`Err(..)`"),
$crate::panicking::Ref(&ok),
),
}
};
($cond:expr, $($arg:tt)+) => {
match $cond {
Err(err) => err,
ok @ Ok(_) => {
$crate::panicking::assert_failed(
$crate::panicking::Value::Str("`Err(..)`"),
$crate::panicking::Value::Ref(&ok),
Some(format_args!($($arg)+)),
);
}
ok @ Ok(_) => $crate::assert_failed!(
$crate::panicking::Msg("`Err(..)`"),
$crate::panicking::Ref(&ok),
$($arg)+
),
}
};
}
Expand Down
16 changes: 8 additions & 8 deletions src/assert_ge.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,21 @@
macro_rules! assert_ge {
($left:expr, $right:expr $(,)?) => {
match (&$left, &$right) {
(left, right) if !(*left >= *right) => $crate::panicking::assert_comparison_failed(
(left, right) if !(*left >= *right) => $crate::assert_comparison_failed!(
$crate::panicking::Ref(left),
$crate::panicking::Comparison::GreaterEqual,
$crate::panicking::Value::Ref(left),
$crate::panicking::Value::Ref(right),
None,
$crate::panicking::Ref(right),
),
_ => {}
}
};
($left:expr, $right:expr, $($arg:tt)+) => {
match (&$left, &$right) {
(left, right) if !(*left >= *right) => $crate::panicking::assert_comparison_failed(
(left, right) if !(*left >= *right) => $crate::assert_comparison_failed!(
$crate::panicking::Ref(left),
$crate::panicking::Comparison::GreaterEqual,
$crate::panicking::Value::Ref(left),
$crate::panicking::Value::Ref(right),
Some(format_args!($($arg)+)),
$crate::panicking::Ref(right),
$($arg)+
),
_ => {}
}
Expand Down Expand Up @@ -54,5 +53,6 @@ mod tests {
#[test]
fn check_assert_ge_pass() {
assert_ge!(2, 1);
assert_ge!(2, 2);
}
}
15 changes: 7 additions & 8 deletions src/assert_gt.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,21 @@
macro_rules! assert_gt {
($left:expr, $right:expr $(,)?) => {
match (&$left, &$right) {
(left, right) if !(*left > *right) => $crate::panicking::assert_comparison_failed(
(left, right) if !(*left > *right) => $crate::assert_comparison_failed!(
$crate::panicking::Ref(left),
$crate::panicking::Comparison::Greater,
$crate::panicking::Value::Ref(left),
$crate::panicking::Value::Ref(right),
None,
$crate::panicking::Ref(right),
),
_ => {}
}
};
($left:expr, $right:expr, $($arg:tt)+) => {
match (&$left, &$right) {
(left, right) if !(*left > *right) => $crate::panicking::assert_comparison_failed(
(left, right) if !(*left > *right) => $crate::assert_comparison_failed!(
$crate::panicking::Ref(left),
$crate::panicking::Comparison::Greater,
$crate::panicking::Value::Ref(left),
$crate::panicking::Value::Ref(right),
Some(format_args!($($arg)+)),
$crate::panicking::Ref(right),
$($arg)+
),
_ => {}
}
Expand Down
16 changes: 8 additions & 8 deletions src/assert_le.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,21 @@
macro_rules! assert_le {
($left:expr, $right:expr $(,)?) => {
match (&$left, &$right) {
(left, right) if !(*left <= *right) => $crate::panicking::assert_comparison_failed(
(left, right) if !(*left <= *right) => $crate::assert_comparison_failed!(
$crate::panicking::Ref(left),
$crate::panicking::Comparison::LessEqual,
$crate::panicking::Value::Ref(left),
$crate::panicking::Value::Ref(right),
None,
$crate::panicking::Ref(right),
),
_ => {}
}
};
($left:expr, $right:expr, $($arg:tt)+) => {
match (&$left, &$right) {
(left, right) if !(*left <= *right) => $crate::panicking::assert_comparison_failed(
(left, right) if !(*left <= *right) => $crate::assert_comparison_failed!(
$crate::panicking::Ref(left),
$crate::panicking::Comparison::LessEqual,
$crate::panicking::Value::Ref(left),
$crate::panicking::Value::Ref(right),
Some(format_args!($($arg)+)),
$crate::panicking::Ref(right),
$($arg)+
),
_ => {}
}
Expand Down Expand Up @@ -54,5 +53,6 @@ mod tests {
#[test]
fn check_assert_le_pass() {
assert_le!(1, 2);
assert_le!(2, 2);
}
}
15 changes: 7 additions & 8 deletions src/assert_lt.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,21 @@
macro_rules! assert_lt {
($left:expr, $right:expr $(,)?) => {
match (&$left, &$right) {
(left, right) if !(*left <= *right) => $crate::panicking::assert_comparison_failed(
(left, right) if !(*left < *right) => $crate::assert_comparison_failed!(
$crate::panicking::Ref(left),
$crate::panicking::Comparison::Less,
$crate::panicking::Value::Ref(left),
$crate::panicking::Value::Ref(right),
None,
$crate::panicking::Ref(right),
),
_ => {}
}
};
($left:expr, $right:expr, $($arg:tt)+) => {
match (&$left, &$right) {
(left, right) if !(*left <= *right) => $crate::panicking::assert_comparison_failed(
(left, right) if !(*left < *right) => $crate::assert_comparison_failed!(
$crate::panicking::Ref(left),
$crate::panicking::Comparison::Less,
$crate::panicking::Value::Ref(left),
$crate::panicking::Value::Ref(right),
Some(format_args!($($arg)+)),
$crate::panicking::Ref(right),
$($arg)+
),
_ => {}
}
Expand Down
13 changes: 6 additions & 7 deletions src/assert_matches.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,19 @@ macro_rules! assert_matches {
($expression:expr, $($pattern:pat_param)|+ $(if $guard:expr)? $(,)?) => {
match $expression {
$($pattern)|+ $(if $guard)? => {},
other => $crate::panicking::assert_matches_failed(
$crate::panicking::Value::Ref(&other),
other => $crate::assert_matches_failed!(
$crate::panicking::Ref(&other),
stringify!($($pattern)|+ $(if $guard)?),
None,
)
),
}
};
($expression:expr, $($pattern:pat_param)|+ $(if $guard:expr)?, $($arg:tt)+) => {
match $expression {
$($pattern)|+ $(if $guard)? => {},
other => $crate::panicking::assert_matches_failed(
$crate::panicking::Value::Ref(&other),
other => $crate::assert_matches_failed!(
$crate::panicking::Ref(&other),
stringify!($($pattern)|+ $(if $guard)?),
Some(format_args!($($arg)+)),
$($arg)+
)
}
};
Expand Down
23 changes: 9 additions & 14 deletions src/assert_none.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,25 +4,20 @@ macro_rules! assert_none {
($cond:expr $(,)?) => {
match $cond {
none @ None => none,
some @ Some(_) => {
$crate::panicking::assert_failed(
$crate::panicking::Value::Ref(&None),
$crate::panicking::Value::Ref(&some),
None,
);
}
some @ Some(_) => $crate::assert_failed!(
$crate::panicking::Msg("`None`"),
$crate::panicking::Ref(&some),
),
}
};
($cond:expr, $($arg:tt)+) => {
match $cond {
none @ None => none,
value @ Some(_) => {
$crate::panicking::assert_failed(
$crate::panicking::Value::Ref(&None),
$crate::panicking::Value::Ref(&value),
Some(format_args!($($arg)+)),
);
}
some @ Some(_) => $crate::assert_failed!(
$crate::panicking::Msg("`None`"),
$crate::panicking::Ref(&some),
$($arg)+
),
}
};
}
Expand Down
23 changes: 9 additions & 14 deletions src/assert_ok.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,25 +4,20 @@ macro_rules! assert_ok {
($cond:expr $(,)?) => {
match $cond {
Ok(value) => value,
err @ Err(..) => {
$crate::panicking::assert_failed(
$crate::panicking::Value::Str("`Ok(..)`"),
$crate::panicking::Value::Ref(&err),
None,
);
}
err @ Err(..) => $crate::assert_failed!(
$crate::panicking::Msg("`Ok(..)`"),
$crate::panicking::Ref(&err),
),
}
};
($cond:expr, $($arg:tt)+) => {
match $cond {
Ok(value) => value,
err @ Err(..) => {
$crate::panicking::assert_failed(
$crate::panicking::Value::Str("`Ok(..)`"),
$crate::panicking::Value::Ref(&err),
Some(format_args!($($arg)+)),
);
}
err @ Err(..) => $crate::assert_failed!(
$crate::panicking::Msg("`Ok(..)`"),
$crate::panicking::Ref(&err),
$($arg)+
),
}
};
}
Expand Down
23 changes: 9 additions & 14 deletions src/assert_pending.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,25 +6,20 @@ macro_rules! assert_pending {
($cond:expr $(,)?) => {
match $cond {
pending @ core::task::Poll::Pending => pending,
ready @ core::task::Poll::Ready(_) => {
$crate::panicking::assert_failed(
$crate::panicking::Value::Ref(&core::task::Poll::Pending),
$crate::panicking::Value::Ref(&ready),
None,
);
}
ready @ core::task::Poll::Ready(_) => $crate::assert_failed!(
$crate::panicking::Msg("`Pending`"),
$crate::panicking::Ref(&ready),
),
}
};
($cond:expr, $($arg:tt)+) => {
match $cond {
pending @ core::task::Poll::Pending => pending,
ready @ core::task::Poll::Ready(_) => {
$crate::panicking::assert_failed(
$crate::panicking::Value::Ref(&core::task::Poll::Pending),
$crate::panicking::Value::Ref(&ready),
Some(format_args!($($arg)+)),
);
}
ready @ core::task::Poll::Ready(_) => $crate::assert_failed!(
$crate::panicking::Msg("`Pending`"),
$crate::panicking::Ref(&ready),
$($arg)+
),
}
};
}
Expand Down
23 changes: 9 additions & 14 deletions src/assert_ready.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,25 +6,20 @@ macro_rules! assert_ready {
($cond:expr $(,)?) => {
match $cond {
core::task::Poll::Ready(t) => t,
pending @ core::task::Poll::Pending => {
$crate::panicking::assert_failed(
$crate::panicking::Value::Str("`Ready(..)`"),
$crate::panicking::Value::Ref(&pending),
None,
);
}
pending @ core::task::Poll::Pending => $crate::assert_failed!(
$crate::panicking::Msg("`Ready(..)`"),
$crate::panicking::Ref(&pending),
),
}
};
($cond:expr, $($arg:tt)+) => {
match $cond {
core::task::Poll::Ready(t) => t,
pending @ core::task::Poll::Pending => {
$crate::panicking::assert_failed(
$crate::panicking::Value::Str("`Ready(..)`"),
$crate::panicking::Value::Ref(&pending),
Some(format_args!($($arg)+)),
);
}
pending @ core::task::Poll::Pending => $crate::assert_failed!(
$crate::panicking::Msg("`Ready(..)`"),
$crate::panicking::Ref(&pending),
$($arg)+
),
}
};
}
Expand Down
23 changes: 9 additions & 14 deletions src/assert_ready_err.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,25 +6,20 @@ macro_rules! assert_ready_err {
($cond:expr $(,)?) => {
match $cond {
core::task::Poll::Ready(Err(err)) => err,
poll => {
$crate::panicking::assert_failed(
$crate::panicking::Value::Str("`Ready(Err(..))`"),
$crate::panicking::Value::Ref(&poll),
None,
);
}
poll => $crate::assert_failed!(
$crate::panicking::Msg("`Ready(Err(..))`"),
$crate::panicking::Ref(&poll),
),
}
};
($cond:expr, $($arg:tt)+) => {
match $cond {
core::task::Poll::Ready(Err(err)) => err,
poll => {
$crate::panicking::assert_failed(
$crate::panicking::Value::Str("`Ready(Err(..))`"),
$crate::panicking::Value::Ref(&poll),
Some(format_args!($($arg)+)),
);
}
poll => $crate::assert_failed!(
$crate::panicking::Msg("`Ready(Err(..))`"),
$crate::panicking::Ref(&poll),
$($arg)+
),
}
};
}
Expand Down
Loading

0 comments on commit 54c97ae

Please sign in to comment.