macro_rules! from_fn {
($matcher:expr) => { ... };
}Expand description
Returns an ArgMatcher that succeeds if the provided closure
returns true.
The returned Argmatcher implements fmt::Display using the
string representation of the closure, so it is only recommended
for use with simple closures. For complex argument matching,
implement your own ArgMatcher to make the expectation message
more specific and less verbose.
§Examples
use faux::{from_fn, matcher::ArgMatcher};
let contains_hello = from_fn!(|message: &str| message.contains("hello"));
assert!(contains_hello.matches("hello world"));
assert!(!contains_hello.matches("bye world"));
println!("{}", contains_hello); // '|message: &str| message.contains("hello")'§Usage within when!
faux::when! does not have a special syntax for
this matcher. See the matcher
syntax for more
information.
ⓘ
// we can call it within `when!`
faux::when!(my_struct.some_method(_ = faux::from_fn!(|_: &i32| true)))
.then_return(5);
// or call outside `when!`
faux::when!(my_struct.some_method)
.with_args((faux::from_fn!(|_: &i32| true),)).then_return(5);