I want to use CustomizeCallback to insert some annotations to the output of protobuf_codegen. Specifically is serde annotations.
Now I get a problem that EnumOrUnknown is not satisfied for the trait Serialize, so I need to add annotation like this #[serde(serialize_with = "crate::unknow_or_enum_serialize")].
but I can't find a way to identify ::std::option::Option<::protobuf::EnumOrUnknown<T>> in CustomizeCallback.
can you help me?
impl CustomizeCallback for MyCustomize {
fn field(&self, field: &FieldDescriptor) -> Customize {
let c = Customize::default();
// here, how to identify?
}
}
I think it may work as expected. I always use protobuf_json_mapping, and I am not so familiar with how to serialize a protobuf message. My opinion is to refactor your proto file and use oneof to achieve your goal, so that you can use protobuf_json_mapping crate.