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);