aboutsummaryrefslogtreecommitdiff
path: root/vendor/miette-derive/src/lib.rs
diff options
context:
space:
mode:
authorValentin Popov <valentin@popov.link>2024-01-08 00:21:28 +0300
committerValentin Popov <valentin@popov.link>2024-01-08 00:21:28 +0300
commit1b6a04ca5504955c571d1c97504fb45ea0befee4 (patch)
tree7579f518b23313e8a9748a88ab6173d5e030b227 /vendor/miette-derive/src/lib.rs
parent5ecd8cf2cba827454317368b68571df0d13d7842 (diff)
downloadfparkan-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.rs32
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()
+}