syn_prelude/
amend_syn_error.rs1pub trait AmmendSynError {
2 fn ammend_error(self, ammend: impl Fn(syn::Error) -> syn::Error) -> Self;
3 fn add_error_prefix(self, prefix: impl AsRef<str>) -> Self
4 where
5 Self: Sized,
6 {
7 self.ammend_error(|err| {
8 syn::Error::new(
9 err.span(),
10 format!("{} {}", prefix.as_ref(), err.to_string()),
11 )
12 })
13 }
14 fn add_error_suffix(self, suffix: impl AsRef<str>) -> Self
15 where
16 Self: Sized,
17 {
18 self.ammend_error(|err| {
19 syn::Error::new(
20 err.span(),
21 format!("{} {}", err.to_string(), suffix.as_ref()),
22 )
23 })
24 }
25}
26
27impl<T> AmmendSynError for syn::Result<T> {
28 fn ammend_error(self, ammend: impl Fn(syn::Error) -> syn::Error) -> Self {
29 self.map_err(|err| ammend(err))
30 }
31}