use super::endpoint::Endpoint;
#[derive(Debug, Clone)]
pub struct NetNode {
pub id: String,
pub name: Option<String>,
pub endpoints: Vec<Endpoint>,
pub trace_ids: Vec<String>,
pub is_defined: bool,
pub reference_count: usize,
}
impl NetNode {
pub fn id(&self) -> &str {
&self.id
}
pub fn name(&self) -> Option<&str> {
self.name.as_deref()
}
pub fn display_name(&self) -> &str {
self.name.as_deref().unwrap_or(&self.id)
}
pub fn endpoints(&self) -> &[Endpoint] {
&self.endpoints
}
pub fn endpoint_count(&self) -> usize {
self.endpoints.len()
}
pub fn is_floating(&self) -> bool {
self.endpoints.len() < 2
}
pub fn is_ghost(&self) -> bool {
!self.is_defined
}
pub fn reference_count(&self) -> usize {
self.reference_count
}
}