Skip to content

Commit

Permalink
Support unsized values in assertions
Browse files Browse the repository at this point in the history
  • Loading branch information
stanislav-tkach committed Aug 2, 2020
1 parent 2f4058a commit 182c901
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 5 deletions.
10 changes: 5 additions & 5 deletions src/lib.rs
Expand Up @@ -93,9 +93,9 @@ fn init() {
pub struct Comparison(Changeset);

impl Comparison {
pub fn new<TLeft: Debug, TRight: Debug>(left: &TLeft, right: &TRight) -> Comparison {
let left_dbg = format!("{:#?}", *left);
let right_dbg = format!("{:#?}", *right);
pub fn new<TLeft: Debug + ?Sized, TRight: Debug + ?Sized>(left: &TLeft, right: &TRight) -> Comparison {
let left_dbg = format!("{:#?}", &*left);
let right_dbg = format!("{:#?}", &*right);
let changeset = Changeset::new(&left_dbg, &right_dbg, "\n");

Comparison(changeset)
Expand Down Expand Up @@ -157,8 +157,8 @@ macro_rules! assert_ne {
match (&($left), &($right)) {
(left_val, right_val) => {
if *left_val == *right_val {
let left_dbg = format!("{:?}", *left_val);
let right_dbg = format!("{:?}", *right_val);
let left_dbg = format!("{:?}", &*left_val);
let right_dbg = format!("{:?}", &*right_val);
if left_dbg != right_dbg {

panic!("assertion failed: `(left != right)`{}{}\
Expand Down
6 changes: 6 additions & 0 deletions tests/assert_eq.rs
Expand Up @@ -193,3 +193,9 @@ fn assert_eq_custom_trailing_comma() {

assert_eq!(x, y, "custom panic message",);
}

#[test]
fn assert_eq_unsized() {
let a: &[u8] = b"e";
assert_eq!(*a, *a);
}
7 changes: 7 additions & 0 deletions tests/assert_ne.rs
Expand Up @@ -172,3 +172,10 @@ fn assert_ne_custom_trailing_comma() {

assert_ne!(x, x, "custom panic message",);
}

#[test]
fn assert_ne_unsized() {
let a: &[u8] = b"e";
let b: &[u8] = b"ee";
assert_ne!(*a, *b);
}

0 comments on commit 182c901

Please sign in to comment.