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}