Function googletest::matchers::le
source · pub fn le<ActualT: Debug + PartialOrd<ExpectedT>, ExpectedT: Debug>(
expected: ExpectedT
) -> impl Matcher<ActualT = ActualT>
Expand description
Matches a value less than or equal to (in the sense of <=
) expected
.
The types of ActualT
of actual
and ExpectedT
of expected
must be
comparable via the PartialOrd
trait. Namely, ActualT
must implement
PartialOrd<ExpectedT>
.
verify_that!(0, le(0))?; // Passes
verify_that!(1, le(0))?; // Fails
In most cases the params neeed to be the same type or they need to be cast explicitly. This can be surprising when comparing integer types or references:
ⓘ
verify_that!(1u32, le(2u64))?; // Does not compile
verify_that!(1u32 as u64, le(2u64))?; // Passes
ⓘ
let actual: &u32 = &1;
let expected: u32 = 2;
verify_that!(actual, le(expected))?; // Does not compile
let actual: &u32 = &1;
let expected: u32 = 2;
verify_that!(actual, le(&expected))?; // Compiles and passes
You can find the standard library PartialOrd
implementation in
https://doc.rust-lang.org/core/cmp/trait.PartialOrd.html#implementors