compose-idents 0.3.0

A Rust macro for generating new identifiers (names of variables, functions, traits, etc) by concatenating one or more arbitrary parts and applying other manipulations.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use crate::ast::{AliasValue, TerminatedExpr};
use crate::util::combined::combine;
use crate::util::unique_id::next_unique_id;
use std::rc::Rc;
use syn::parse::{Parse, ParseStream};
use syn::Token;

impl Parse for AliasValue {
    fn parse(input: ParseStream) -> syn::Result<Self> {
        let span = input.span();
        let terminated = input.parse::<TerminatedExpr<combine!(Token![,], Token![;])>>()?;
        let expr = terminated.into_expr();

        Ok(AliasValue::new(next_unique_id(), Rc::new(expr), span))
    }
}