position

crates.io docs

position provides a Position struct, representing a source code position, as well as a convenient here!() macro for creating a position corresponding to the location where here!() was invoked:

rust use position::{here, Position}; let p: Position = here!(); assert_eq!(p.file(), "src/lib.rs"); assert_eq!(p.line(), 5); assert_eq!(p.column(), 9); assert_eq!(p.module_path(), "rust_out"); assert_eq!(p.to_string(), "src/lib.rs:5:9");

If position is compiled with the location feature, Position provides an implementation of oi::Location, so it can be used with oi::ErrAt::err_at:

```rust

#[cfg(feature = "location")]

{

use std::{io, fs::File}; use oi::ErrAt; use position::here;

let result: oi::Result = File::open("foo.txt").err_at(here!());

asserteq!( result.unwraperr().to_string(), "src/lib.rs:11:32: No such file or directory (os error 2)", );

}

```