pub struct Blake3HashSuite;Expand description
Blake3 HashSuite: Blake3 leaves and a Blake3 compression function for inner nodes.
Both parallel compute paths use the portable auto-vectorized kernel, not the scalar loop:
- Leaves within one 1024-byte chunk are hashed by the batch kernel.
- Larger leaves fall back to the scalar adapter that walks the tree.
- Every inner-node level folds its node pairs through the batched two-to-one compression.
The batch width is fixed at 16 lanes for both paths:
- The throughput sweet spot on NEON in the portable-kernel benchmark.
- The width the AVX2 / AVX-512 vectorizer fills.
- 4 and 8 lanes both measure slower.
Trait Implementations§
Source§impl Clone for Blake3HashSuite
impl Clone for Blake3HashSuite
Source§fn clone(&self) -> Blake3HashSuite
fn clone(&self) -> Blake3HashSuite
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for Blake3HashSuite
impl Debug for Blake3HashSuite
Source§impl Default for Blake3HashSuite
impl Default for Blake3HashSuite
Source§fn default() -> Blake3HashSuite
fn default() -> Blake3HashSuite
Returns the “default value” for a type. Read more
Source§impl HashSuite for Blake3HashSuite
impl HashSuite for Blake3HashSuite
Source§type Compression = Blake3Compression
type Compression = Blake3Compression
Sequential 2-to-1 compression used to fold inner Merkle nodes during verification.
Source§type ParLeafHash = PortableBlake3ParallelDigest<16>
type ParLeafHash = PortableBlake3ParallelDigest<16>
Parallel counterpart of
Self::LeafHash used during proving.Source§type ParCompression = PortableBlake3ParallelCompression<16>
type ParCompression = PortableBlake3ParallelCompression<16>
Parallel counterpart of
Self::Compression used during proving.Auto Trait Implementations§
impl Freeze for Blake3HashSuite
impl RefUnwindSafe for Blake3HashSuite
impl Send for Blake3HashSuite
impl Sync for Blake3HashSuite
impl Unpin for Blake3HashSuite
impl UnsafeUnpin for Blake3HashSuite
impl UnwindSafe for Blake3HashSuite
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more