Как обернуть Ty для создания Ve c<Ty> в процедурном макросе? - PullRequest
0 голосов
/ 13 апреля 2020

Я использую процедурные макросы для генерации функций. Я хочу преобразовать Ty в Vec<Ty>. Это мой слишком сложный путь, превращающий some_ident Ty в Vec<Ty>:

syn::Ty::Path(None, syn::Path::from(
syn::PathSegment {
        ident: Ident::new("std::vec::Vec"),
        parameters: syn::PathParameters::AngleBracketed(AngleBracketedParameterData {
            lifetimes: vec![],
            types: vec![syn::Ty::Path(None,
                                      syn::Path {
                                          global: false,
                                          segments: vec![syn::PathSegment {
                                              ident: some_ident,
                                              parameters: syn::PathParameters::AngleBracketed(AngleBracketedParameterData {
                                                  lifetimes: vec![],
                                                  types: vec![],
                                                  bindings: vec![],
                                              }),
                                          }],
                                      },
            )],
            bindings: vec![],
        }),
    }
));

A простой проект минимального воспроизведения .

Есть ли лучший способ сделать это?

...