2个版本
0.1.1 | 2024年2月18日 |
---|---|
0.1.0 | 2024年2月18日 |
#421 in 过程宏
15KB
208 行
const-addrs
一套用于从字符串字面量创建网络类型的宏。
每个宏都会使用相应类型的 FromStr
实现进行解析。如果存在,生成的代码将使用类型的 const
构造函数。
use std::net::Ipv4Addr;
use const_addrs::ip4;
let a = ip4!("192.168.1.1");
let b = Ipv4Addr::new(192,168,1,1);
assert_eq!(a, b);
并将无效的字符串转换为编译时错误
error: invalid IPv4 address syntax
--> bad.rs:10:18
|
10 | let a = ip4!("192.1681.1");
| ^^^^^^^^^^^^
提供了以下宏
类型 | 宏 |
---|---|
std::net::IpAddr |
ip! |
std::net::Ipv4Addr |
ip4! |
std::net::Ipv6Addr |
ip6! |
std::net::SocketAddr |
sock! |
std::net::SocketAddrV4 |
sock4! |
std::net::SocketAddrV6 |
sock6! |
ipnetwork::IpNetwork |
net! |
ipnetwork::Ipv4Network |
net4! |
ipnetwork::Ipv6Network |
net6! |
macaddr::MacAddr |
mac! |
macaddr::MacAddr6 |
mac6! |
macaddr::MacAddr8 |
mac8! |
注意:使用 ipnetwork::*
类型需要您在依赖项中包含 ipnetwork crate。这些类型可以通过 ipnet
功能启用(默认)。
注意:使用 macaddr::*
需要在依赖项中包含 macaddr crate。这些类型可以通过 mac
功能启用。
在可能的情况下,展开的宏使用 const
构造函数,允许以简单字符串表示网络类型,而无需运行时解析的开销。
依赖项
~0.3–0.9MB
~20K SLoC