]> git.lizzy.rs Git - rust.git/blob - src/libstd/sys/vxworks/memchr.rs
Rollup merge of #63004 - JohnTitor:add-tests-for-54062, r=Centril
[rust.git] / src / libstd / sys / vxworks / memchr.rs
1 // Original implementation taken from rust-memchr.
2 // Copyright 2015 Andrew Gallant, bluss and Nicolas Koch
3
4 pub fn memchr(needle: u8, haystack: &[u8]) -> Option<usize> {
5     let p = unsafe {
6         libc::memchr(
7             haystack.as_ptr() as *const libc::c_void,
8             needle as libc::c_int,
9             haystack.len())
10     };
11     if p.is_null() {
12         None
13     } else {
14         Some(p as usize - (haystack.as_ptr() as usize))
15     }
16 }
17
18 pub fn memrchr(needle: u8, haystack: &[u8]) -> Option<usize> {
19     fn memrchr_specific(needle: u8, haystack: &[u8]) -> Option<usize> {
20         core::slice::memchr::memrchr(needle, haystack)
21     }
22
23     memrchr_specific(needle, haystack)
24 }