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.
This commit is contained in:
Lorenz Leutgeb 2025-06-21 10:55:51 +02:00
parent 408d4f27e7
commit b9759c5868
1 changed files with 13 additions and 1 deletions

View File

@ -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))]