1use std::net::{IpAddr, Ipv4Addr, SocketAddr};
2
3#[repr(C)]
4pub struct SocketAddrIpv4 {
5 pub ip: [u8; 4],
6 pub port: u16,
7}
8
9impl Into<SocketAddr> for &SocketAddrIpv4 {
10 fn into(self) -> SocketAddr {
11 SocketAddr::new(
12 IpAddr::V4(Ipv4Addr::new(
13 self.ip[0], self.ip[1], self.ip[2], self.ip[3],
14 )),
15 self.port,
16 )
17 }
18}
19
20impl From<SocketAddr> for SocketAddrIpv4 {
21 fn from(socket_addr: SocketAddr) -> Self {
22 match socket_addr {
23 SocketAddr::V4(socket_addr) => Self {
24 ip: socket_addr.ip().octets(),
25 port: socket_addr.port(),
26 },
27 _ => panic!("Only IPv4 is supported"),
28 }
29 }
30}
31
32mod session;
33mod barrier;
34mod broadcast;