I want to generate a HashMap
which use struct fields as key, and use usize
integer as value.
pub struct Article {
title: String,
content: String,
category: String,
comments: Vec<Comment>
}
pub struct Comment {
content: String
}
My expected output is:
{
title: 0,
content: 1,
category: 2
comments[].content: 3
}
My solution is impl
my trait FieldsMapping
for both Article
and Comment
:
pub trait FieldsMapping {
fn get_fields_map(&self) -> HashMap<String, usize>;
}
I want to write a compiler plugin for custom derive FieldsMapping
.
How I get all fields within compiler plugin? And how can I know that fields type is Vec
or other?