pub fn parse_input_paths(args: Expr) -> Vec<ExprPath> {
    match args {
        Expr::Path(path) => {
            vec![path]
        }
        Expr::Array(array) => {
            let mut paths = vec![];
            for expr in array.elems {
                match expr {
                    Expr::Path(path) => paths.push(path),
                    _ => {
                        err!(expr, "Only paths are allowed in struct_merge's attribute.");
                    }
                }
            }
            paths
        }
        _ => {
            err!(
                args,
                "struct_merge's macro parameters should be either a single path {} ",
                "or a vector of paths, such as '[crate::your::path]'."
            );

            vec![]
        }
    }
}
/// Extract the input paths from the macro arguments.
///
/// Both, a single path and an array of paths is supported.
/// I.e.
/// - `merge_struct(crate::some::path)`
/// - `merge_struct([crate::some::struct, crate::some_other::struct])`
Extract the input paths from the macro arguments.
Both, a single path and an array of paths is supported.
Extract the input paths from the macro arguments . Both a single path and an array of paths is supported .
pub fn parse_input_paths(args: Expr) -> Vec<ExprPath> {
    match args {
        Expr::Path(path) => {
            vec![path]
        }
        Expr::Array(array) => {
            let mut paths = vec![];
            for expr in array.elems {
                match expr {
                    Expr::Path(path) => paths.push(path),
                    _ => {
                        err!(expr, "Only paths are allowed in struct_merge's attribute.");
                    }
                }
            }
            paths
        }
        _ => {
            err!(
                args,
                "struct_merge's macro parameters should be either a single path {} ",
                "or a vector of paths, such as '[crate::your::path]'."
            );
            vec![]
        }
    }
}
pub fn parse_input_paths ( args : Expr ) -> Vec < ExprPath > { match args { Expr :: Path ( path ) => { vec ! [ path ] } Expr :: Array ( array ) => { let mut paths = vec ! [ ] ; for expr in array . elems { match expr { Expr :: Path ( path ) => paths . push ( path ) , _ => { err ! ( expr " " ) ; } } } paths } _ => { err ! ( args " " " " ) ; vec ! [ ] } } }
Extract the input paths from the macro arguments.
Extract the input paths from the macro arguments .
args
Expr