Similar to the automatic implicit conversion to boolean values
in weakly typed languages
type |
impl |
float |
self is not 0.0 / NaN |
integer |
self != 0 |
reference / smart pointer |
inner value impl |
raw pointer |
!self.is_null |
Option |
self.is_some |
Result |
self.is_ok |
Poll |
self.is_ready |
str / slice / array |
!self.is_empty |
collections |
!self.is_empty |
unit |
false |
bool |
self |
fn / tuple / char |
true |
Examples
use weak_true::WeakTrue;
assert!("c".weak_true());
assert!('c'.weak_true());
assert!('\0'.weak_true());
assert!([0].weak_true());
assert!((&0 as *const i32).weak_true());
assert!(Some(0).weak_true());
assert!(f64::NAN.weak_false());
assert!(0.0.weak_false());
assert!(0.weak_false());
assert!("".weak_false());
assert!([0; 0].weak_false());