#[cfg(all(feature = "serde", feature = "hd-wallet"))]
mod hex_or_bin;
#[cfg(all(feature = "serde", feature = "hd-wallet"))]
pub use hex_or_bin::HexOrBin;
#[cfg(all(feature = "serde", not(feature = "hd-wallet")))]
use hex as _;
#[cfg(feature = "udigest")]
pub mod encoding {
pub struct CurveName;
impl<E: generic_ec::Curve> udigest::DigestAs<generic_ec::serde::CurveName<E>> for CurveName {
fn digest_as<B: udigest::Buffer>(
_value: &generic_ec::serde::CurveName<E>,
encoder: udigest::encoding::EncodeValue<B>,
) {
encoder.encode_leaf_value(E::CURVE_NAME)
}
}
}
#[cfg(feature = "spof")]
pub fn subset<T: Clone, I: Into<usize> + Copy>(
indexes: &[I],
list: &[T],
) -> Option<alloc::vec::Vec<T>> {
indexes
.iter()
.map(|&i| list.get(i.into()).cloned())
.collect()
}