base64_simd/
multiversion.rs
1use crate::{Config, Error};
2
3vsimd::dispatch!(
4 name = {encode},
5 signature = {pub(crate) unsafe fn(src: *const u8, len: usize, dst: *mut u8, config: Config) -> ()},
6 fallback = {crate::encode::encode_fallback},
7 simd = {crate::encode::encode_simd},
8 targets = {"avx2", "ssse3", "neon", "simd128"},
9 fastest = {"avx2", "neon", "simd128"},
10);
11
12vsimd::dispatch!(
13 name = {decode},
14 signature = {pub(crate) unsafe fn(src: *const u8, dst: *mut u8, n: usize, config: Config) -> Result<(), Error>},
15 fallback = {crate::decode::decode_fallback},
16 simd = {crate::decode::decode_simd},
17 targets = {"avx2", "ssse3", "neon", "simd128"},
18 fastest = {"avx2", "neon", "simd128"},
19);
20
21vsimd::dispatch!(
22 name = {check},
23 signature = {pub(crate) unsafe fn(src: *const u8, n: usize, config: Config) -> Result<(), Error>},
24 fallback = {crate::check::check_fallback},
25 simd = {crate::check::check_simd},
26 targets = {"avx2", "ssse3", "neon", "simd128"},
27 fastest = {"avx2", "neon", "simd128"},
28);
29
30vsimd::dispatch!(
31 name = {find_non_ascii_whitespace},
32 signature = {pub unsafe fn(src: *const u8, len: usize) -> usize},
33 fallback = {crate::ascii::find_non_ascii_whitespace_fallback},
34 simd = {crate::ascii::find_non_ascii_whitespace_simd},
35 targets = {"avx2", "sse2", "neon", "simd128"},
36 fastest = {"avx2", "neon", "simd128"},
37);