dock_crypto_utils/
aliases.rs

1use ark_serialize::{CanonicalDeserialize, CanonicalSerialize};
2use digest::*;
3
4/// `CanonicalDeserialize + CanonicalSerialize`
5pub trait CanonicalSerDe: CanonicalDeserialize + CanonicalSerialize {}
6impl<T: CanonicalDeserialize + CanonicalSerialize> CanonicalSerDe for T {}
7
8/// `ExactSizeIterator + DoubleEndedIterator`
9pub trait DoubleEndedExactSizeIterator: ExactSizeIterator + DoubleEndedIterator {}
10impl<I, T: ExactSizeIterator<Item = I> + DoubleEndedIterator<Item = I>> DoubleEndedExactSizeIterator
11    for T
12{
13}
14
15/// Marks a type that implements `DynDigest + Default + Clone`.
16pub trait FullDigest: DynDigest + Default + Clone {}
17impl<T: DynDigest + Default + Clone> FullDigest for T {}
18
19/// `Send` if the `parallel` feature enabled
20#[cfg(feature = "parallel")]
21pub trait SendIfParallel: Send {}
22#[cfg(feature = "parallel")]
23impl<T: Send> SendIfParallel for T {}
24
25/// `Send` if the `parallel` feature enabled
26#[cfg(not(feature = "parallel"))]
27pub trait SendIfParallel {}
28#[cfg(not(feature = "parallel"))]
29impl<T> SendIfParallel for T {}
30
31/// `Sync` if the `parallel` feature enabled
32#[cfg(feature = "parallel")]
33pub trait SyncIfParallel: Sync {}
34#[cfg(feature = "parallel")]
35impl<T: Sync> SyncIfParallel for T {}
36
37/// `Sync` if the `parallel` feature enabled
38#[cfg(not(feature = "parallel"))]
39pub trait SyncIfParallel {}
40#[cfg(not(feature = "parallel"))]
41impl<T> SyncIfParallel for T {}
42
43#[cfg(feature = "parallel")]
44pub use rayon::iter;
45
46#[cfg(not(feature = "parallel"))]
47pub use core::iter;