1 个不稳定版本

0.1.0 2024 年 8 月 23 日

#7 in #panics

MIT 许可证

5KB

pretty_panics

pretty_panics 是一个 crate,它提供了一个轻松定制 panic 消息和错误消息的方法。

如果启用了 use-default-features,则 pretty_panics 将为 panic 和错误提供默认格式化程序。

use pretty_panics::pretty_panic;

#[pretty_panic]
fn main() -> std::result::Result<(), SomeDisplayError> {
    ...
}
use pretty_panics::pretty_panic;
use thiserror::Error;

#[derive(Error, Debug)]
enum SimpleError {
    #[error("an error")]
    AnError
}

fn error_formatter(error: &SimpleError) -> String {
    format!("uhhh something broke guys... {error}")
}

#[pretty_panic(formatter = error_formatter)]
fn main() -> anyhow::Result<(), SimpleError> {
    Result::<(), SimpleError>::Err(SimpleError::AnError)?;
    Ok(())
}

注意事项:注意事项

  • 需要您的 main fn 返回一个结果
  • 除非您实现自己的格式化程序并将其包含在内,否则您将失去获取 panic 调用栈的能力
  • 老实说,你可能不应该使用这个 LMAO
  • 目前不支持异步 main fn

依赖项

~285–750KB
~17K SLoC