3个不稳定版本

0.2.0 2021年5月9日
0.1.2 2018年1月15日
0.1.1 2018年1月15日
0.1.0 2017年10月18日

过程宏中排名第451

Download history 66/week @ 2024-03-11 35/week @ 2024-03-18 37/week @ 2024-03-25 71/week @ 2024-04-01 41/week @ 2024-04-08 36/week @ 2024-04-15 46/week @ 2024-04-22 94/week @ 2024-04-29 31/week @ 2024-05-06 47/week @ 2024-05-13 41/week @ 2024-05-20 35/week @ 2024-05-27 57/week @ 2024-06-03 33/week @ 2024-06-10 41/week @ 2024-06-17 31/week @ 2024-06-24

每月下载量165
7个crate中使用(6 个直接使用)

LGPL-2.0

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