1#![cfg(any(feature = "cipher", feature = "rng"))]
2
3use cfg_if::cfg_if;
4
5cfg_if! {
6 if #[cfg(chacha20_backend = "soft")] {
7 pub(crate) mod soft;
8 } else if #[cfg(any(target_arch = "x86", target_arch = "x86_64"))] {
9 cfg_if! {
10 if #[cfg(all(chacha20_avx512, chacha20_backend = "avx512"))] {
11 pub(crate) mod avx512;
12 #[cfg(feature = "rng")]
14 pub(crate) mod avx2;
15 } else if #[cfg(chacha20_backend = "avx2")] {
16 pub(crate) mod avx2;
17 } else if #[cfg(chacha20_backend = "sse2")] {
18 pub(crate) mod sse2;
19 } else {
20 pub(crate) mod soft;
21 #[cfg(chacha20_avx512)]
22 pub(crate) mod avx512;
23 pub(crate) mod avx2;
24 pub(crate) mod sse2;
25 }
26 }
27 } else if #[cfg(all(target_arch = "aarch64", target_feature = "neon"))] {
28 pub(crate) mod neon;
29 } else {
30 pub(crate) mod soft;
31 }
32}