IP Addresses
| Data Type | Object | Slice | Vector | Option |
|---|---|---|---|---|
IP v4: Ipv4Addr (std::net::Ipv4Addr) | Yes | - | - | Yes |
IP v6: Ipv6Addr (std::net::Ipv6Addr) | Yes | - | - | Yes |
IP enum: IpAddr (std::net::IpAddr) | Yes | - | - | Yes |
Remarks:
- The serialization size for
Ipv4Addris 4 bytes, and forIpv6Addrit is 16 bytes. - The serialization size for
IpAddris 5 bybtes (if it is anIpv4Addr) or 17 bytes (if it is anIpv6Addr).
Example
-
Direct values:
#![allow(unused)] fn main() { use flat_message::*; use std::net::{Ipv4Addr, Ipv6Addr, IpAddr}; #[derive(FlatMessage)] struct Example { ipv4_address: Ipv4Addr, ipv6_address: Ipv6Addr, ip_address: IpAddr, } } -
Using
Optionvalues:#![allow(unused)] fn main() { use flat_message::*; use std::net::{Ipv4Addr, Ipv6Addr, IpAddr}; #[derive(FlatMessage)] struct Example { ipv4_address: Option<Ipv4Addr>, ipv6_address: Option<Ipv6Addr>, ip_address: Option<IpAddr>, } }