1 个稳定版本
1.0.1 | 2023年2月8日 |
---|---|
1.0.0 |
|
#2067 in 过程宏
10KB
152 行
socket_addr_macros
可以在编译时检查和解析SocketAddr的宏。
示例
use socket_addr_macros::socket_addr;
use std::net::TcpListener;
use std::io::Write;
fn main() {
let listener = TcpListener::bind(socket_addr!(127.0.0.1:8080)).unwrap();
while let Ok((mut conn, _)) = listener.accept() {
conn.write(b"hello").unwrap();
}
}
lib.rs
:
Rust标准库文档建议,对于类型为ToSocketAddrs
的参数,你应该直接传递一个字符串字面量,该字面量在运行时解析,因此可能引发panic。为了解决这个问题,socket_addr!
和socket_addr_dyn!
宏在编译时进行解析,当地址无效时,引发编译错误。
示例
use socket_addr_macros::socket_addr;
use std::io::Write;
use std::net::TcpListener;
fn main() {
let listener = TcpListener::bind(socket_addr!(127.0.0.1:8080)).unwrap();
while let Ok((mut conn, _)) = listener.accept() {
conn.write(b"hello").unwrap();
}
}
依赖
~505KB