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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
// cubehash.rs
pub use crate::;
// ---- Backend auto-selection type alias ----
/// Auto-selected CubeHash type for the current target when AVX2 is available.
///
/// This is an alias for `CubeHash<crate::avx2::AVX2>`.
pub type CubeHashBest = ;
/// Auto-selected CubeHash type for the current target on x86/x86_64 without AVX2.
///
/// This is an alias for `CubeHash<crate::sse2::SSE2>`.
pub type CubeHashBest = ;
/// Auto-selected CubeHash type for the current target on AArch64 with NEON.
///
/// This is an alias for `CubeHash<crate::neon::NEON>`.
pub type CubeHashBest = ;
/// Auto-selected CubeHash type for WASM32 targets with SIMD128.
///
/// This is an alias for `CubeHash<crate::wasm32::Wasm32>`.
pub type CubeHashBest = ;
/// Auto-selected CubeHash type for targets without SIMD support or when `force-scalar` is enabled.
///
/// This is an alias for `CubeHash<crate::scalar::Scalar>`.
pub type CubeHashBest = ;
/// Synonym for `CubeHashBest`.
///
/// Prefer this name when you want to make it explicit that the backend is chosen automatically
/// for the current platform.
///
/// Example:
/// ```rust
/// use cubehash::{CubeHashAuto, CubeHashParams};
///
/// let mut h: CubeHashAuto = CubeHashAuto::new(CubeHashParams { revision: 3, hash_len_bits: 256 });
/// h.update(b"hello");
/// let out = h.finalize();
/// assert_eq!(out.len(), 32);
/// ```
pub type CubeHashAuto = CubeHashBest;
// ------------------- Generic wrapper for N-byte hashes -------------------
/// A convenience wrapper that fixes the output size at compile time.
///
/// `CubeHashN<N>` builds on top of the auto-selected backend and exposes the same
/// `update`/`finalize` streaming API. `finalize` returns a fixed-size array of `N` bytes.
///
/// Typically you will use the aliases `CubeHash256`, `CubeHash384`, or `CubeHash512` instead of
/// instantiating this type directly.
///
/// Example:
/// ```rust
/// use cubehash::CubeHash256;
///
/// let mut h = CubeHash256::new(); // revision 3
/// h.update(b"hello");
/// let out = h.finalize();
/// assert_eq!(out.len(), 32);
/// ```
// ------------------- Type aliases for common hash sizes -------------------
/// Convenience alias for a 256-bit CubeHash (32-byte output).
///
/// Example:
/// ```rust
/// use cubehash::CubeHash256;
///
/// let mut h = CubeHash256::new();
/// h.update(b"example");
/// let out = h.finalize();
/// assert_eq!(out.len(), 32);
/// ```
pub type CubeHash256 = ;
/// Convenience alias for a 384-bit CubeHash (48-byte output).
///
/// Example:
/// ```rust
/// use cubehash::CubeHash384;
///
/// let mut h = CubeHash384::new();
/// h.update(b"example");
/// let out = h.finalize();
/// assert_eq!(out.len(), 48);
/// ```
pub type CubeHash384 = ;
/// Convenience alias for a 512-bit CubeHash (64-byte output).
///
/// Example:
/// ```rust
/// use cubehash::CubeHash512;
///
/// let mut h = CubeHash512::new();
/// h.update(b"example");
/// let out = h.finalize();
/// assert_eq!(out.len(), 64);
/// ```
pub type CubeHash512 = ;