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
// Copyright 2023 Ulvetanna Inc.

use cfg_if::cfg_if;

mod arch_optimal;
mod binary_utils;
mod strategies;

cfg_if! {
	if #[cfg(target_arch = "x86_64")] {
		#[allow(dead_code)]
		mod portable;

		mod x86_64;
		pub use x86_64::{packed_128, packed_256, packed_512, packed_aes_128, packed_aes_256, packed_aes_512, packed_polyval_128, packed_polyval_256, packed_polyval_512};
	} else if #[cfg(target_arch = "aarch64")] {
		#[allow(dead_code)]
		mod portable;

		mod aarch64;
		pub use aarch64::{packed_128, packed_polyval_128, packed_aes_128};
		pub use portable::{packed_256, packed_512, packed_aes_256, packed_aes_512, packed_polyval_256, packed_polyval_512};
	} else {
		mod portable;
		pub use portable::{packed_128, packed_256, packed_512, packed_aes_128, packed_aes_256, packed_aes_512, packed_polyval_128, packed_polyval_256, packed_polyval_512};
	}
}

pub use arch_optimal::*;
pub use portable::{
	packed_1, packed_16, packed_2, packed_32, packed_4, packed_64, packed_8, packed_aes_16,
	packed_aes_32, packed_aes_64, packed_aes_8,
};
pub use strategies::*;