mirror of
https://git.intege.rs/xlib/x.git
synced 2025-12-05 20:35:01 +00:00
iterate
This commit is contained in:
@@ -1,13 +1,27 @@
|
||||
|
||||
#[test]
|
||||
pub fn test_distance() {
|
||||
let _ = x::dur![ 5 days 4 hours 7 minutes 2 seconds 2 minutes ];
|
||||
|
||||
let a = x::dur![ 5 days 4 hours 7 minutes 2 seconds 2 minutes ];
|
||||
|
||||
let a = [0u8,2,3];
|
||||
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<u16> = 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);
|
||||
}
|
||||
Reference in New Issue
Block a user