Expand description
memx
minics libc.
This crate is implemented memory functions like libc memcmp(), memchr(), memmem(), memcpy(), memset().
§Features
- Rewriting with rust lang.
- minimum support rustc 1.56.1 (59eed8a2a 2021-11-01)
§Todo
- Support the zero overhead trait.
- Support more fast routine on armv7-android
- Support more fast routine on x86_64
- Support #![no_std]
§Support status of miri :: rustc 1.68.0-nightly (77429957a 2023-01-01)
Ok lists:
- cargo +nightly miri test –target=x86_64-unknown-linux-gnu
- cargo +nightly miri test –target=i686-unknown-linux-gnu
- cargo +nightly miri test –target=i586-unknown-linux-gnu
- cargo +nightly miri test –target=aarch64-unknown-linux-gnu
- cargo +nightly miri test –target=armv7-unknown-linux-gnueabihf
Failed lists:
- nothing
Modules§
Structs§
- Range
Error - used by memcpy()
Functions§
- memchr
- This mimics
libc::memchr()
, same asbuf.iter().position(|&x| x == by1)
. - memchr_
dbl - This is same as
buf.iter().position(|&x| x == by1 || x == by2)
. - memchr_
qpl - This is same as
buf.iter().position(|&x| x == by1 || x == by2 || x == by3 || x == by4)
. - memchr_
tpl - This is same as
buf.iter().position(|&x| x == by1 || x == by2 || x == by3)
. - memcmp
- This mimics
libc::memcmp()
, same asa.cmp(&b)
. - memcpy
- This mimics
libc::memcpy()
, same asdst = src
. - memeq
- This mimics
libc::bcmp()
, same asa == b
. - memmem
- This mimics
libc::memmem()
, same as(haystack as &str).find(needle as &str)
orhaystack.windows(needle.len()).position(|window| window == needle)
. - memnechr
- This is same as
buf.iter().position(|&x| x != by1)
, not included libc. - memnechr_
dbl - This is same as
buf.iter().position(|&x| x != by1 && x != by2)
, not included libc. - memnechr_
qpl - This is same as
buf.iter().position(|&x| x != by1 && x != by2 && x != by3 && x != by4)
, not included libc. - memnechr_
tpl - This is same as
buf.iter().position(|&x| x != by1 && x != by2 && x != by3)
, not included libc. - memrchr
- This mimics
libc::memrchr()
, same asbuf.iter().rposition(|&x| x == by1)
. - memrchr_
dbl - This is same as
buf.iter().rposition(|&x| x == by1 || x == by2)
. - memrchr_
qpl - This is same as
buf.iter().rposition(|&x| x == by1 || x == by2 || x == by3 || x == by4)
. - memrchr_
tpl - This is same as
buf.iter().rposition(|&x| x == by1 || x == by2 || x == by3)
. - memrmem
- This mimics
libc::memrmem()
, same as(haystack as &str).rfind(needle as &str)
orhaystack.windows(needle.len()).rposition(|window| window == needle)
. - memrnechr
- This is same as
buf.iter().rposition(|&x| x != by1)
, not included libc. - memrnechr_
dbl - This is same as
buf.iter().rposition(|&x| x != by1 && x != by2)
, not included libc. - memrnechr_
qpl - This is same as
buf.iter().rposition(|&x| x != by1 && x != by2 && x != by3 && x != by4)
, not included libc. - memrnechr_
tpl - This is same as
buf.iter().rposition(|&x| x != by1 && x != by2 && x != by3)
, not included libc. - memset
- This mimics
libc::memset()
, same asbuf.fill(c)
.