Crate memx

Crate memx 

Source
Expand description

memx is a Rust library that provides a set of functions for memory manipulation, similar to the standard C library’s <string.h>, but implemented in pure Rust and optimized for performance.

§Features

  • A rich set of memory search, comparison, and manipulation functions.
  • Optimized implementations for x86 and x86-64 architectures using SSE2 and AVX2.
  • no_std compatibility for use in embedded systems and other resource-constrained environments.
  • A full suite of iterators for all search functions, providing an idiomatic Rust interface.

Modules§

iter

Structs§

RangeError
used by memcpy()

Functions§

memchr
This mimics libc::memchr(), same as buf.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 as a.cmp(&b).
memcpy
This mimics libc::memcpy(), same as dst = src.
memeq
This mimics libc::bcmp(), same as a == b.
memmem
This mimics libc::memmem(), same as (haystack as &str).find(needle as &str) or haystack.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 as buf.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) or haystack.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 as buf.fill(c).