• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 pub trait SpanError {
2     #[allow(non_snake_case)]
EXPECTED_Span_OR_ToTokens<D: std::fmt::Display>(&self, msg: D) -> syn::Error3     fn EXPECTED_Span_OR_ToTokens<D: std::fmt::Display>(&self, msg: D) -> syn::Error;
4 }
5 
6 pub trait ToTokensError {
7     #[allow(non_snake_case)]
EXPECTED_Span_OR_ToTokens<D: std::fmt::Display>(&self, msg: D) -> syn::Error8     fn EXPECTED_Span_OR_ToTokens<D: std::fmt::Display>(&self, msg: D) -> syn::Error;
9 }
10 
11 impl<T: quote::ToTokens> ToTokensError for T {
EXPECTED_Span_OR_ToTokens<D: std::fmt::Display>(&self, msg: D) -> syn::Error12     fn EXPECTED_Span_OR_ToTokens<D: std::fmt::Display>(&self, msg: D) -> syn::Error {
13         // Curb monomorphization from generating too many identical `new_spanned`.
14         syn::Error::new_spanned(self.to_token_stream(), msg)
15     }
16 }
17 
18 impl SpanError for proc_macro2::Span {
EXPECTED_Span_OR_ToTokens<D: std::fmt::Display>(&self, msg: D) -> syn::Error19     fn EXPECTED_Span_OR_ToTokens<D: std::fmt::Display>(&self, msg: D) -> syn::Error {
20         syn::Error::new(*self, msg)
21     }
22 }
23