add better dht debugging
This commit is contained in:
		| @@ -77,18 +77,7 @@ where | ||||
|  | ||||
| macro_rules! byte_array_type { | ||||
|     ($name:ident, $size:expr, $encoded_size:expr) => { | ||||
|         #[derive( | ||||
|             Clone, | ||||
|             Copy, | ||||
|             Hash, | ||||
|             Eq, | ||||
|             PartialEq, | ||||
|             PartialOrd, | ||||
|             Ord, | ||||
|             RkyvArchive, | ||||
|             RkyvSerialize, | ||||
|             RkyvDeserialize, | ||||
|         )] | ||||
|         #[derive(Clone, Copy, Hash, RkyvArchive, RkyvSerialize, RkyvDeserialize)] | ||||
|         #[archive_attr(repr(C), derive(CheckBytes, Hash, Eq, PartialEq, PartialOrd, Ord))] | ||||
|         pub struct $name { | ||||
|             pub bytes: [u8; $size], | ||||
| @@ -125,6 +114,32 @@ macro_rules! byte_array_type { | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         impl PartialOrd for $name { | ||||
|             fn partial_cmp(&self, other: &Self) -> Option<core::cmp::Ordering> { | ||||
|                 Some(self.cmp(other)) | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         impl Ord for $name { | ||||
|             fn cmp(&self, other: &Self) -> core::cmp::Ordering { | ||||
|                 for n in 0..$size { | ||||
|                     let c = self.bytes[n].cmp(&other.bytes[n]); | ||||
|                     if c != core::cmp::Ordering::Equal { | ||||
|                         return c; | ||||
|                     } | ||||
|                 } | ||||
|                 core::cmp::Ordering::Equal | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         impl PartialEq for $name { | ||||
|             fn eq(&self, other: &Self) -> bool { | ||||
|                 self.bytes == other.bytes | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         impl Eq for $name {} | ||||
|  | ||||
|         impl $name { | ||||
|             pub fn new(bytes: [u8; $size]) -> Self { | ||||
|                 Self { bytes } | ||||
|   | ||||
| @@ -176,10 +176,10 @@ impl CryptoSystem for CryptoSystemVLD0 { | ||||
|     } | ||||
|     // Distance Metric | ||||
|     fn distance(&self, key1: &PublicKey, key2: &PublicKey) -> CryptoKeyDistance { | ||||
|         let mut bytes = [0u8; PUBLIC_KEY_LENGTH]; | ||||
|         let mut bytes = [0u8; CRYPTO_KEY_LENGTH]; | ||||
|  | ||||
|         for (n, byte) in bytes.iter_mut().enumerate() { | ||||
|             *byte = key1.bytes[n] ^ key2.bytes[n]; | ||||
|         for n in 0..CRYPTO_KEY_LENGTH { | ||||
|             bytes[n] = key1.bytes[n] ^ key2.bytes[n]; | ||||
|         } | ||||
|  | ||||
|         CryptoKeyDistance::new(bytes) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user