assert_4th

Macro assert_4th 

Source
macro_rules! assert_4th {
    ($tuple:expr, value == $val:expr) => { ... };
    ($tuple:expr, value != $val:expr) => { ... };
    ($tuple:expr, value < $val:expr) => { ... };
    ($tuple:expr, value <= $val:expr) => { ... };
    ($tuple:expr, value > $val:expr) => { ... };
    ($tuple:expr, value >= $val:expr) => { ... };
}
Expand description

Asserts that the 4th item in a tuple has a relationship to some value.

§Parameters

  • &tuple A reference to a tuple.
  • &val A reference to a value to compare to the 4th item.

§Dependencies

  • All content must implement Debug
  • val must implement PartialEq for the 4th type in the tuple to use == or !=.
  • val must implement PartialOrd for the 4th type in the tuple to use <, <=, >, >=.

§Example

use totems::assert_4th;
let tuple = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, "Hello");
let x = 5;
assert_4th!(&tuple, value == &x); // tuple.4 == x
assert_4th!(&tuple, value <= &x);
assert_4th!(&tuple, value >= &x);
assert_4th!(&tuple, value < &(x + 1));
assert_4th!(&tuple, value > &(x - 1));

§Example Error Messages

thread 'tuples::_04th::le_correct' panicked at 'assertion failed: (tuple.4 <= val)
    val: 0
tuple.4: 1
', src/tuples.rs:2162:9