1个不稳定发布
0.1.0 | 2019年11月21日 |
---|
#2330 在 Rust模式
670KB
293 行
derive(Display) /// From<docs>
此库提供了一个方便的derive宏,用于实现标准库的core::fmt::Display
trait。
[dependencies]
displaydoc-watt = "0.1"
编译器支持:需要rustc 1.34+
示例
use displaydoc_watt::Display;
use thiserror::Error;
#[derive(Display, Error, Debug)]
pub enum DataStoreError {
/// data store disconnected
Disconnect(#[source] io::Error),
/// the data for key `{0}` is not available
Redaction(String),
/// invalid header (expected {expected:?}, found {found:?})
InvalidHeader {
expected: String,
found: String,
},
/// unknown data store error
Unknown,
}
详情
-
如果为结构体或枚举的每个变体提供文档注释消息,将为您生成类型上的
Display
实现,如示例中所示。消息支持从错误中插值字段的简写。
/// {var}
⟶write!("{}", self.var)
/// {0}
⟶write!("{}", self.0)
/// {var:?}
⟶write!("{:?}", self.var)
/// {0:?}
⟶write!("{:?}", self.0)
常见问题解答
-
这个crate是否兼容
no_std
?- 目前,主要的
displaydoc
包不支持 no_std,但我还没有弄清楚如何在将进程宏编译为 wasm 时使其工作。
- 目前,主要的
-
这个包是否通过
Display
特性与Path
和PathBuf
一起工作?- 是的。这个包使用 @dtolnay 的 自动引用专用技术 为类型添加一个特殊的特性以获取显示实现,然后针对
Path
和PathBuf
进行专门化,当找到这两种类型之一时,它调用self.display()
以获取一个std::path::Display<'_>
类型,该类型可用于与 Display 格式说明符一起使用!
- 是的。这个包使用 @dtolnay 的 自动引用专用技术 为类型添加一个特殊的特性以获取显示实现,然后针对
许可证
根据您的选择,在 Apache License, Version 2.0 或 MIT 许可证下获得许可。除非您明确说明,否则根据 Apache-2.0 许可证定义的,您有意提交给本包的贡献将如上所述双重许可,不附加任何其他条款或条件。