#[test] pub fn test_distance() { let _ = x::dur![ 5 days 4 hours 7 minutes 2 seconds 2 minutes ]; let a = [0u8, 2, 3]; let p1 = &a[0]; let p2 = &a[2]; assert_eq!(x::distance(p1, p2), 2); assert_eq!(x::distance(p2, p1), 2); assert_eq!(x::distance(p1, p1), 0); let a = b"Hello World\0".as_ptr(); assert_eq!(Some(11), x::iterate(a).position(|&a| a == 0)); let b = b"H\0e\0l\0l\0o\0 \0W\0o\0r\0l\0d\0\0\0".as_ptr() as *const u16; let bytes: Vec = x::iterate(b) .take_while(|&&c| c != 0) .cloned().collect(); assert_eq!("Hello World", String::from_utf16_lossy(bytes.as_slice())); let hello_world: String = char::decode_utf16( x::iterate(b).cloned().take_while(|&c| c != 0)) .filter_map(|_r| _r.ok()).collect(); assert_eq!("Hello World", hello_world); }