Vendor dependencies for 0.3.0 release

This commit is contained in:
2025-09-27 10:29:08 -05:00
parent 0c8d39d483
commit 82ab7f317b
26803 changed files with 16134934 additions and 0 deletions

35
vendor/rustversion/src/attr.rs vendored Normal file
View File

@@ -0,0 +1,35 @@
use crate::error::{Error, Result};
use crate::expr::{self, Expr};
use crate::{iter, token};
use proc_macro::{Span, TokenStream};
pub struct Args {
pub condition: Expr,
pub then: Then,
}
pub enum Then {
Const(Span),
Attribute(TokenStream),
}
pub fn parse(input: TokenStream) -> Result<Args> {
let ref mut input = iter::new(input);
let condition = expr::parse(input)?;
token::parse_punct(input, ',')?;
if input.peek().is_none() {
return Err(Error::new(Span::call_site(), "expected one or more attrs"));
}
let const_span = token::parse_optional_keyword(input, "const");
let then = if let Some(const_span) = const_span {
token::parse_optional_punct(input, ',');
token::parse_end(input)?;
Then::Const(const_span)
} else {
Then::Attribute(input.collect())
};
Ok(Args { condition, then })
}