use std::mem;
use proc_macro2::TokenStream;
pub(crate) trait ProcMacroErrorExt {
fn as_compile_errors(&mut self) -> TokenStream;
}
impl ProcMacroErrorExt for syn::Error {
fn as_compile_errors(&mut self) -> TokenStream {
self.to_compile_error()
}
}
impl ProcMacroErrorExt for darling::Error {
fn as_compile_errors(&mut self) -> TokenStream {
mem::replace(self, darling::Error::custom("")).write_errors()
}
}
impl ProcMacroErrorExt for proc_macro2::LexError {
fn as_compile_errors(&mut self) -> TokenStream {
quote::quote! { self }
}
}