3个不稳定版本
0.2.0 | 2021年5月9日 |
---|---|
0.1.2 | 2018年1月15日 |
0.1.1 |
|
0.1.0 | 2017年10月18日 |
在过程宏中排名第451
每月下载量165次
在7个crate中使用(6 个直接使用)
8KB
163 行
net-literals: 用于编写IP/套接字地址字面量的Rust宏。
此crate允许您将IP和套接字地址作为字符串编写,这些字符串在编译时进行解析(并检查有效性)。它使用了过程宏hack并且与稳定版Rust兼容。受maplit crate的启发。
示例
#[macro_use]
extern crate net_literals;
use std::net::{IpAddr, Ipv4Addr, Ipv6Addr};
use std::net::{SocketAddr, SocketAddrV4, SocketAddrV6};
use std::str::FromStr;
fn main() {
assert_eq!(
ip!("1.2.3.4"),
IpAddr::from_str("1.2.3.4").unwrap()
);
assert_eq!(
ipv4!("1.2.3.4"),
Ipv4Addr::from_str("1.2.3.4").unwrap()
);
assert_eq!(
ipv6!("0011:2233:4455:6677:8899:aabb:ccdd:eeff"),
Ipv6Addr::from_str("0011:2233:4455:6677:8899:aabb:ccdd:eeff").unwrap()
);
assert_eq!(
addr!("2.3.4.5:666"),
SocketAddr::from_str("2.3.4.5:666").unwrap()
);
assert_eq!(
addrv4!("2.3.4.5:666"),
SocketAddrV4::from_str("2.3.4.5:666").unwrap()
);
assert_eq!(
addrv6!("[::2345]:666"),
SocketAddrV6::from_str("[::2345]:666").unwrap()
);
}
依赖项
~1.5MB
~36K SLoC