diff options
author | Valentin Popov <valentin@popov.link> | 2024-01-08 00:21:28 +0300 |
---|---|---|
committer | Valentin Popov <valentin@popov.link> | 2024-01-08 00:21:28 +0300 |
commit | 1b6a04ca5504955c571d1c97504fb45ea0befee4 (patch) | |
tree | 7579f518b23313e8a9748a88ab6173d5e030b227 /vendor/miette-derive/src/lib.rs | |
parent | 5ecd8cf2cba827454317368b68571df0d13d7842 (diff) | |
download | fparkan-1b6a04ca5504955c571d1c97504fb45ea0befee4.tar.xz fparkan-1b6a04ca5504955c571d1c97504fb45ea0befee4.zip |
Initial vendor packages
Signed-off-by: Valentin Popov <valentin@popov.link>
Diffstat (limited to 'vendor/miette-derive/src/lib.rs')
-rw-r--r-- | vendor/miette-derive/src/lib.rs | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/vendor/miette-derive/src/lib.rs b/vendor/miette-derive/src/lib.rs new file mode 100644 index 0000000..0f7e64e --- /dev/null +++ b/vendor/miette-derive/src/lib.rs @@ -0,0 +1,32 @@ +use quote::quote; +use syn::{parse_macro_input, DeriveInput}; + +use diagnostic::Diagnostic; + +mod code; +mod diagnostic; +mod diagnostic_arg; +mod diagnostic_source; +mod fmt; +mod forward; +mod help; +mod label; +mod related; +mod severity; +mod source_code; +mod url; +mod utils; + +#[proc_macro_derive( + Diagnostic, + attributes(diagnostic, source_code, label, related, help, diagnostic_source) +)] +pub fn derive_diagnostic(input: proc_macro::TokenStream) -> proc_macro::TokenStream { + let input = parse_macro_input!(input as DeriveInput); + let cmd = match Diagnostic::from_derive_input(input) { + Ok(cmd) => cmd.gen(), + Err(err) => return err.to_compile_error().into(), + }; + // panic!("{:#}", cmd.to_token_stream()); + quote!(#cmd).into() +} |