enum_dispatch/syn_utils.rs
1//! Contains common convenience methods for building `syn` syntactical constructs.
2
3use syn::{punctuated::Punctuated, Expr, ExprPath, Ident, Path, PathArguments, PathSegment};
4
5use std::iter::FromIterator;
6
7/// Builds an expression from an identifier, i.e. just a named variable
8pub fn plain_identifier_expr(ident: Ident) -> Expr {
9 Expr::Path(ExprPath {
10 attrs: vec![],
11 qself: None,
12 path: Path {
13 leading_colon: None,
14 segments: Punctuated::from_iter(vec![PathSegment {
15 ident,
16 arguments: PathArguments::None,
17 }]),
18 },
19 })
20}