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 次下载

CC0 许可证

6KB
51 代码行

position

crates.io docs

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