use std::cmp::Ordering; #[derive(Copy, Clone)] pub struct Hash512(pub [u8; 64]); impl Default for Hash512 { fn default() -> Self { Hash512([0u8; 64]) } } impl AsRef<[u8]> for Hash512 { fn as_ref(&self) -> &[u8] { self.0.as_ref() } } impl PartialOrd for Hash512 { #[inline] fn partial_cmp(&self, other: &Hash512) -> Option { PartialOrd::partial_cmp(&&self.0[..], &&other.0[..]) } #[inline] fn lt(&self, other: &Hash512) -> bool { PartialOrd::lt(&&self.0[..], &&other.0[..]) } #[inline] fn le(&self, other: &Hash512) -> bool { PartialOrd::le(&&self.0[..], &&other.0[..]) } #[inline] fn ge(&self, other: &Hash512) -> bool { PartialOrd::ge(&&self.0[..], &&other.0[..]) } #[inline] fn gt(&self, other: &Hash512) -> bool { PartialOrd::gt(&&self.0[..], &&other.0[..]) } } impl Ord for Hash512 { #[inline] fn cmp(&self, other: &Hash512) -> Ordering { Ord::cmp(&&self.0[..], &&other.0[..]) } } impl PartialEq for Hash512 { fn eq(&self, other: &Hash512) -> bool { self.0.as_ref() == other.0.as_ref() } } impl Eq for Hash512 {}