Trait KeyIdMapping
pub trait KeyIdMapping<Id, K> {
// Required methods
fn map_key_to_id(&self, key: &K) -> Option<Id>;
fn map_id_to_public(&self, id: &Id) -> Option<K>;
// Provided methods
fn map_keys_to_ids(&self, keys: &[K]) -> Vec<Option<Id>> { ... }
fn map_ids_to_keys(&self, ids: &[Id]) -> Vec<Option<K>> { ... }
}Expand description
Trait that defines 1:1 mapper between key identifiers and public keys.
This is used to uniquely map between short public key identifiers (commonly used in the Sphinx header), and actual routing addresses (public keys) of the nodes.
Required Methods§
fn map_key_to_id(&self, key: &K) -> Option<Id>
fn map_key_to_id(&self, key: &K) -> Option<Id>
Maps public key to its unique identifier.
fn map_id_to_public(&self, id: &Id) -> Option<K>
fn map_id_to_public(&self, id: &Id) -> Option<K>
Maps public key identifier to the actual public key.
Provided Methods§
fn map_keys_to_ids(&self, keys: &[K]) -> Vec<Option<Id>>
fn map_keys_to_ids(&self, keys: &[K]) -> Vec<Option<Id>>
Convenience method to map a slice of public keys to IDs.
fn map_ids_to_keys(&self, ids: &[Id]) -> Vec<Option<K>>
fn map_ids_to_keys(&self, ids: &[Id]) -> Vec<Option<K>>
Convenience method to map a slice of IDs to public keys.