1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
mod mem_chr;
pub(crate) use mem_chr::_memchr_impl;
#[allow(unused_imports)]
pub(crate) use mem_chr::_memchr_remaining_15_bytes_impl;

mod mem_chr_double;
pub(crate) use mem_chr_double::_memchr_double_impl;
#[allow(unused_imports)]
pub(crate) use mem_chr_double::_memchr_double_remaining_15_bytes_impl;

mod mem_cmp;
pub(crate) use mem_cmp::_memcmp_impl;

mod mem_cpy;
pub(crate) use mem_cpy::_memcpy_impl;
#[allow(unused_imports)]
pub(crate) use mem_cpy::_memcpy_remaining_15_bytes_impl;
#[allow(unused_imports)]
pub(crate) use mem_cpy::_memcpy_remaining_3_bytes_impl;
#[allow(unused_imports)]
pub(crate) use mem_cpy::_memcpy_remaining_7_bytes_impl;

mod mem_eq;
pub(crate) use mem_eq::_memeq_impl;

mod mem_mem;
pub(crate) use mem_mem::_memmem_impl;

mod mem_nechr;
pub(crate) use mem_nechr::_memnechr_impl;
#[allow(unused_imports)]
pub(crate) use mem_nechr::_memnechr_remaining_15_bytes_impl;

mod mem_rchr;
pub(crate) use mem_rchr::_memrchr_impl;
#[allow(unused_imports)]
pub(crate) use mem_rchr::_memrchr_remaining_15_bytes_impl;

mod mem_rchr_double;
pub(crate) use mem_rchr_double::_memrchr_double_impl;
#[allow(unused_imports)]
pub(crate) use mem_rchr_double::_memrchr_double_remaining_15_bytes_impl;

mod mem_rnechr;
pub(crate) use mem_rnechr::_memrnechr_impl;
#[allow(unused_imports)]
pub(crate) use mem_rnechr::_memrnechr_remaining_15_bytes_impl;

mod mem_rmem;
pub(crate) use mem_rmem::_memrmem_impl;

mod mem_set;
pub(crate) use mem_set::_memset_impl;
#[allow(unused_imports)]
pub(crate) use mem_set::_memset_remaining_15_bytes_impl;
#[allow(unused_imports)]
pub(crate) use mem_set::_start_set_64;

use super::RangeError;
use core::cmp::Ordering;

pub fn memchr_basic(buf: &[u8], c: u8) -> Option<usize> {
    crate::mem::_memchr_impl(buf, c)
}

pub fn memchr_double_basic(buf: &[u8], c1: u8, c2: u8) -> Option<usize> {
    crate::mem::_memchr_double_impl(buf, c1, c2)
}

pub fn memcmp_basic(a: &[u8], b: &[u8]) -> Ordering {
    crate::mem::_memcmp_impl(a, b)
}

pub fn memcpy_basic(dst: &mut [u8], src: &[u8]) -> Result<(), RangeError> {
    crate::mem::_memcpy_impl(dst, src)
}

pub fn memeq_basic(a: &[u8], b: &[u8]) -> bool {
    crate::mem::_memeq_impl(a, b)
}

pub fn memmem_basic(haystack: &[u8], needle: &[u8]) -> Option<usize> {
    crate::mem::_memmem_impl(haystack, needle)
}

pub fn memnechr_basic(buf: &[u8], c: u8) -> Option<usize> {
    crate::mem::_memnechr_impl(buf, c)
}

pub fn memrchr_basic(buf: &[u8], c: u8) -> Option<usize> {
    crate::mem::_memrchr_impl(buf, c)
}

pub fn memrchr_double_basic(buf: &[u8], c1: u8, c2: u8) -> Option<usize> {
    crate::mem::_memrchr_double_impl(buf, c1, c2)
}

pub fn memrnechr_basic(buf: &[u8], c: u8) -> Option<usize> {
    crate::mem::_memrnechr_impl(buf, c)
}

pub fn memrmem_basic(haystack: &[u8], needle: &[u8]) -> Option<usize> {
    crate::mem::_memrmem_impl(haystack, needle)
}

pub fn memset_basic(buf: &mut [u8], c: u8) {
    crate::mem::_memset_impl(buf, c)
}