support type de/ser-ialization for attributes too

This commit is contained in:
Marc-Antoine Arnaud
2018-05-24 17:39:05 +02:00
parent 1101b2e16f
commit 98f1a0c146
4 changed files with 105 additions and 1 deletions

View File

@@ -44,7 +44,16 @@ pub fn serialize(
| Some(FieldType::FieldTypeU32)
| Some(FieldType::FieldTypeI64)
| Some(FieldType::FieldTypeU64) => Some(quote!{
.attr(#label_name, &self.#label)
.attr(#label_name, &*{
use std::mem;
unsafe {
let content = format!("{}", self.#label);
let ret : &'static str = mem::transmute(&content as &str);
mem::forget(content);
ret
}
})
}),
Some(FieldType::FieldTypeStruct { .. }) => Some(quote!{
.attr(#label_name, &*{