From 1b6a04ca5504955c571d1c97504fb45ea0befee4 Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Mon, 8 Jan 2024 01:21:28 +0400 Subject: Initial vendor packages Signed-off-by: Valentin Popov --- vendor/miette-derive/src/lib.rs | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 vendor/miette-derive/src/lib.rs (limited to 'vendor/miette-derive/src/lib.rs') 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() +} -- cgit v1.2.3