mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs.git
synced 2026-10-28 12:53:14 +01:00
This eliminates the need for `expect_punct` helper. Reviewed-by: Tamir Duberstein <[email protected]> Reviewed-by: Benno Lossin <[email protected]> Signed-off-by: Gary Guo <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Miguel Ojeda <[email protected]>
37 lines
681 B
Rust
37 lines
681 B
Rust
// SPDX-License-Identifier: GPL-2.0
|
|
|
|
use proc_macro2::{
|
|
Ident,
|
|
TokenStream,
|
|
TokenTree, //
|
|
};
|
|
use syn::{
|
|
parse::{
|
|
Parse,
|
|
ParseStream, //
|
|
},
|
|
Result,
|
|
Token, //
|
|
};
|
|
|
|
pub(crate) struct Input {
|
|
a: Ident,
|
|
_comma: Token![,],
|
|
b: Ident,
|
|
}
|
|
|
|
impl Parse for Input {
|
|
fn parse(input: ParseStream<'_>) -> Result<Self> {
|
|
Ok(Self {
|
|
a: input.parse()?,
|
|
_comma: input.parse()?,
|
|
b: input.parse()?,
|
|
})
|
|
}
|
|
}
|
|
|
|
pub(crate) fn concat_idents(Input { a, b, .. }: Input) -> TokenStream {
|
|
let res = Ident::new(&format!("{a}{b}"), b.span());
|
|
TokenStream::from_iter([TokenTree::Ident(res)])
|
|
}
|