#template #error #eyre #color

template-eyre

用于处理panic和eyre::Report的错误报告器,支持handlebars模板

6个版本

0.1.0-alpha.62022年1月19日
0.1.0-alpha.52022年1月17日
0.1.0-alpha.42022年1月13日

#345 in 模板引擎

MIT许可证

100KB
458

template-eyre

用于处理panic和eyre::Report的错误报告器,支持handlebars模板。

是否曾经使用过eyre并觉得现有的处理器过于无聊或复杂?这个crate让您能够在几秒钟内自定义错误报告并添加自定义字段。

特性

  • 由Handlebars驱动的错误报告
  • 颜色支持
  • 自定义缩进支持
  • 合理的内置处理器
  • 堆栈跟踪支持
  • panic处理器
  • 自定义字段支持

编写自己的模板

这个crate包含两个模板Hook::simpleHook::colored_simple,但您也可以轻松地创建自己的模板!

首先,通过阅读handlebars指南开始。Handlebars是一种简单的模板语言,所以这不会很难。

接下来,开始编写自己的模板!您可以从前内置模板中获得一些灵感。

注意,这个crate为您提供了一些实用的助手。此外,这个crate所依赖的handlebars crate也有一些自定义助手

示例

可以使用如下模板构建一个最小的处理器

Oh no, this program crashed!

{{style "red" error}}
{{*set multi=(gt (len sources) 1)}}
{{#each sources}}
    {{#if @first}}
        {{~style "dim" "Caused by:"}}
    {{/if}}
    {{~indent (_if @root.multi @index null) (style "yellow" this)}}
{{/each}}

{{style "cyan" "Please report this issue to ..."}}

然后您将获得一个定制的错误报告

snapshot

额外助手

style助手

着色输出。样式应使用“点”形式编写。

有关详细信息,请参阅console的文档

例如,{{style "black.bold.on_red" error}}

indent 辅助工具

缩进一个块。

此辅助工具有三种形式

  • indent content - 使用四个空格缩进内容。
  • indent <number> content - 在与回溯相同缩进级别的第一行之前插入一个数字。
  • indent <string> content - 在每一行之前插入指定的字符串。

例如,{{indent @index this}}

内联 _if 辅助工具

if 辅助工具的内联版本。

例如,{{_if success "Yay!" "Oops!"}}

set 装饰器

设置局部变量。

例如,{{*set flag=true}}

concat 辅助工具

连接字符串。

例如,{{concat "a" "b"}}

许可协议

本项目采用 MIT 许可协议 许可。

依赖关系

~4–12MB
~128K SLoC