MacroError type

rename
Pantonshire 5 years ago
parent b6ed3ec698
commit dee1f49d1a

@ -0,0 +1,32 @@
use std::borrow::Cow;
use proc_macro2::Span;
use quote::quote_spanned;
#[derive(Clone, Debug)]
pub(crate) struct MacroError {
message: Cow<'static, str>,
span: Span,
}
impl MacroError {
pub(crate) fn new(message: Cow<'static, str>, span: Span) -> Self {
MacroError {
message,
span,
}
}
pub(crate) fn to_token_stream(&self) -> proc_macro::TokenStream {
self.to_token_stream2().into()
}
pub(crate) fn to_token_stream2(&self) -> proc_macro2::TokenStream {
let message = &self.message;
quote_spanned! {
self.span => ::std::compile_error!(#message);
}
}
}
pub(crate) type Result<T> = std::result::Result<T, MacroError>;
Loading…
Cancel
Save