From 0cae3c0967bd670764dd42d38e25f23485f53bf1 Mon Sep 17 00:00:00 2001 From: xphoniex Date: Sat, 27 May 2023 16:50:26 +0330 Subject: [PATCH] radicle: Implement `AliasStore` for address `Book` --- radicle/src/node/address/store.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/radicle/src/node/address/store.rs b/radicle/src/node/address/store.rs index fd106193..06c077b2 100644 --- a/radicle/src/node/address/store.rs +++ b/radicle/src/node/address/store.rs @@ -8,6 +8,7 @@ use thiserror::Error; use crate::node; use crate::node::address::{KnownAddress, Source}; use crate::node::Address; +use crate::node::AliasStore; use crate::node::NodeId; use crate::prelude::Timestamp; use crate::sql::transaction; @@ -250,6 +251,16 @@ impl Store for Book { } } +impl AliasStore for &Book { + /// Retrieve `alias` of given node. + /// Calls `Self::get` under the hood. + fn alias(&self, nid: &NodeId) -> Option { + self.get(nid) + .map(|node| node.map(|n| n.alias)) + .unwrap_or(None) + } +} + /// Address store. /// /// Used to store node addresses and metadata.