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
use std::{io, fs::File}; use oi::ErrAt; use position::here;
let result: oi::Result
asserteq!( result.unwraperr().to_string(), "src/lib.rs:11:32: No such file or directory (os error 2)", );
```