pub struct StaticLocationRef(/* private fields */);Methods from Deref<Target = Location<'static>>§
1.10.0 · Sourcepub fn file(&self) -> &'a str
pub fn file(&self) -> &'a str
Returns the name of the source file from which the panic originated.
§&str, not &Path
The returned name refers to a source path on the compiling system, but it isn’t valid to
represent this directly as a &Path. The compiled code may run on a different system with
a different Path implementation than the system providing the contents and this library
does not currently have a different “host path” type.
The most surprising behavior occurs when “the same” file is reachable via multiple paths in
the module system (usually using the #[path = "..."] attribute or similar), which can
cause what appears to be identical code to return differing values from this function.
§Cross-compilation
This value is not suitable for passing to Path::new or similar constructors when the host
platform and target platform differ.
§Examples
use std::panic;
panic::set_hook(Box::new(|panic_info| {
if let Some(location) = panic_info.location() {
println!("panic occurred in file '{}'", location.file());
} else {
println!("panic occurred but can't get location information...");
}
}));
panic!("Normal panic");1.92.0 · Sourcepub fn file_as_c_str(&self) -> &'a CStr
pub fn file_as_c_str(&self) -> &'a CStr
Returns the name of the source file as a nul-terminated CStr.
This is useful for interop with APIs that expect C/C++ __FILE__ or
std::source_location::file_name, both of which return a nul-terminated const char*.
1.10.0 · Sourcepub fn line(&self) -> u32
pub fn line(&self) -> u32
Returns the line number from which the panic originated.
§Examples
use std::panic;
panic::set_hook(Box::new(|panic_info| {
if let Some(location) = panic_info.location() {
println!("panic occurred at line {}", location.line());
} else {
println!("panic occurred but can't get location information...");
}
}));
panic!("Normal panic");1.25.0 · Sourcepub fn column(&self) -> u32
pub fn column(&self) -> u32
Returns the column from which the panic originated.
§Examples
use std::panic;
panic::set_hook(Box::new(|panic_info| {
if let Some(location) = panic_info.location() {
println!("panic occurred at column {}", location.column());
} else {
println!("panic occurred but can't get location information...");
}
}));
panic!("Normal panic");