From b9759c58688a1fe63a09c92c43eef10257f4c9ef Mon Sep 17 00:00:00 2001 From: Lorenz Leutgeb Date: Sat, 21 Jun 2025 10:55:51 +0200 Subject: [PATCH] radicle: Make `node::Link` copy and add `is_*` This will allow us to replace `netservices::LinkDirection` with `radicle::node::Link` in a drop-in manner. --- crates/radicle/src/node.rs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/crates/radicle/src/node.rs b/crates/radicle/src/node.rs index 3bf4d03c..52c53a94 100644 --- a/crates/radicle/src/node.rs +++ b/crates/radicle/src/node.rs @@ -723,7 +723,7 @@ impl Command { } /// Connection link direction. -#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] #[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))] pub enum Link { @@ -733,6 +733,18 @@ pub enum Link { Inbound, } +impl Link { + /// Check if this is an outbound link. + pub fn is_outbound(&self) -> bool { + matches!(self, Self::Outbound) + } + + /// Check if this is an inbound link. + pub fn is_inbound(&self) -> bool { + matches!(self, Self::Inbound) + } +} + /// An established network connection with a peer. #[derive(Debug, Clone, Serialize, Deserialize)] #[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]