| Crates.io | syn-miette |
| lib.rs | syn-miette |
| version | 0.3.0 |
| created_at | 2023-10-04 03:00:09.105082+00 |
| updated_at | 2024-04-08 19:59:39.7555+00 |
| description | A `syn::Error` wrapper that provides pretty diagnostic messages using `miette`. |
| homepage | |
| repository | https://github.com/aatifsyed/syn-miette |
| max_upload_size | |
| id | 991773 |
| size | 33,936 |
A [syn::Error] wrapper that provides pretty diagnostic messages using [miette].
let source = r"
pub struct {
num_yaks: usize
}";
let error = syn::parse_str::<syn::DeriveInput>(source).unwrap_err();
let error = syn_miette::Error::new(error, source);
assert_eq!(
error.render(), // only with `--feature render`
" × expected identifier
╭─[2:12]
1 │
2 │ pub struct {
· ┬
· ╰── expected identifier
3 │ num_yaks: usize
╰────
"
);
Notably, Error properly renders children that have been [syn::Error::combine]-ed:
× duplicate definition of `Foo`
╭─[1:8]
1 │ struct Foo;
· ─┬─
· ╰── initial definition here
2 │ enum Bar {}
3 │ union Foo {}
· ─┬─
· ╰── duplicate definition of `Foo`
╰────