4 个版本
0.0.3 | 2019 年 3 月 29 日 |
---|---|
0.0.2 | 2019 年 3 月 29 日 |
0.0.1 | 2019 年 3 月 29 日 |
0.0.0 | 2019 年 3 月 28 日 |
68 在 #location
每月 23 次下载
6KB
51 代码行
position
position
提供了一个 Position
结构体,表示源代码位置,以及一个方便的 here!()
宏,用于创建与 here!()
调用位置相对应的位置
use position::{here, Position};
let p: Position = here!();
assert_eq!(p.file(), "src/lib.rs");
assert_eq!(p.line(), 5);
assert_eq!(p.column(), 19);
assert_eq!(p.module_path(), "rust_out");
assert_eq!(p.to_string(), "src/lib.rs:5:19");
如果使用 location
功能编译 position
,默认开启,则 Position
实现 oi::Location
,因此它可以与 oi::ErrAt::err_at
一起使用
# #[cfg(feature = "location")]
# {
use std::{io, fs::File};
use oi::ErrAt;
use position::{here, Position};
let result: oi::Result<File, io::Error, Position> =
File::open("foo.txt").err_at(here!());
assert_eq!(
result.unwrap_err().to_string(),
"src/lib.rs:11:32: No such file or directory (os error 2)",
);
# }
依赖项
~18KB