diff options
Diffstat (limited to 'vendor/async-trait/src/args.rs')
| -rw-r--r-- | vendor/async-trait/src/args.rs | 36 |
1 files changed, 0 insertions, 36 deletions
diff --git a/vendor/async-trait/src/args.rs b/vendor/async-trait/src/args.rs deleted file mode 100644 index 72d97e95..00000000 --- a/vendor/async-trait/src/args.rs +++ /dev/null @@ -1,36 +0,0 @@ -use proc_macro2::Span; -use syn::parse::{Error, Parse, ParseStream, Result}; -use syn::Token; - -#[derive(Copy, Clone)] -pub struct Args { - pub local: bool, -} - -mod kw { - syn::custom_keyword!(Send); -} - -impl Parse for Args { - fn parse(input: ParseStream) -> Result<Self> { - match try_parse(input) { - Ok(args) if input.is_empty() => Ok(args), - _ => Err(error()), - } - } -} - -fn try_parse(input: ParseStream) -> Result<Args> { - if input.peek(Token![?]) { - input.parse::<Token![?]>()?; - input.parse::<kw::Send>()?; - Ok(Args { local: true }) - } else { - Ok(Args { local: false }) - } -} - -fn error() -> Error { - let msg = "expected #[async_trait] or #[async_trait(?Send)]"; - Error::new(Span::call_site(), msg) -} |
