IF YOU WOULD LIKE TO GET AN ACCOUNT, please write an
email to Administrator. User accounts are meant only to access repo
and report issues and/or generate pull requests.
This is a purpose-specific Git hosting for
BaseALT
projects. Thank you for your understanding!
Только зарегистрированные пользователи имеют доступ к сервису!
Для получения аккаунта, обратитесь к администратору.
- A `fmt::Display` impl is generated for your enum if you provide
a docstring comment on each variant as shown above in the example. The
`Display` derive macro supports a shorthand for interpolating fields from
the error:
-`/// {var}` ⟶ `write!("{}", self.var)`
-`/// {0}` ⟶ `write!("{}", self.0)`
-`/// {var:?}` ⟶ `write!("{:?}", self.var)`
-`/// {0:?}` ⟶ `write!("{:?}", self.0)`
- This also works with structs and [generic types][crate::Display#generic-type-parameters]:
```rust
/// oh no, an error: {0}
#[derive(Display)]
pub struct Error<E>(pub E);
let error: Error<&str> = Error("muahaha i am an error");
assert!("oh no, an error: muahaha i am an error" == &format!("{}", error));
```
- Two optional attributes can be added to your types next to the derive:
-`#[ignore_extra_doc_attributes]` makes the macro ignore any doc
comment attributes (or `///` lines) after the first. Multi-line
comments using `///` are otherwise treated as an error, so use this
attribute or consider switching to block doc comments (`/** */`).
-`#[prefix_enum_doc_attributes]` combines the doc comment message on
your enum itself with the messages for each variant, in the format
“enum: variant”. When added to an enum, the doc comment on the enum
becomes mandatory. When added to any other type, it has no effect.
- In case you want to have an independent doc comment, the
`#[displaydoc("...")` atrribute may be used on the variant or struct to
override it.
<br>
### FAQ
1.**Is this crate `no_std` compatible?**
* Yes! This crate implements the [`core::fmt::Display`] trait, not the [`std::fmt::Display`] trait, so it should work in `std` and `no_std` environments. Just add `default-features = false`.
2.**Does this crate work with `Path` and `PathBuf` via the `Display` trait?**
* Yuuup. This crate uses @dtolnay's [autoref specialization technique](https://github.com/dtolnay/case-studies/blob/master/autoref-specialization/README.md) to add a special trait for types to get the display impl. It then specializes for `Path` and `PathBuf`, and when either of these types are found, it calls `self.display()` to get a `std::path::Display<'_>` type which can be used with the `Display` format specifier!
#### License
<sup>
Licensed under either of <ahref="LICENSE-APACHE">Apache License, Version
2.0</a> or <ahref="LICENSE-MIT">MIT license</a> at your option.
</sup>
<br>
<sub>
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in this crate by you, as defined in the Apache-2.0 license, shall
be dual licensed as above, without any additional terms or conditions.