tokio-multicast 0.7.2

Small Tokio helpers for UDP multicast send/receive.
Documentation
use std::net::IpAddr;

#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub enum Membership {
    AnySource { group: IpAddr },
    SourceSpecific { group: IpAddr, source: IpAddr },
}

impl Membership {
    pub fn any_source(group: IpAddr) -> Self {
        Self::AnySource { group }
    }

    pub fn source_specific(group: IpAddr, source: IpAddr) -> Self {
        Self::SourceSpecific { group, source }
    }

    pub fn group(&self) -> IpAddr {
        match self {
            Self::AnySource { group } | Self::SourceSpecific { group, .. } => *group,
        }
    }
}