1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
use super::generator::*;
use {proc_macro2::*, quote::*};
impl StructGenerator {
/// Generate null handler.
pub fn generate_handle_null(field: &Field, insert: bool) -> TokenStream {
if field.attribute.ignore_null {
quote! {
if value.is_null() {} else
}
} else {
match &field.attribute.null {
Some(null) => {
let field_name = &field.name;
if insert {
quote! {
if value.is_null() {
if let ::std::option::Option::Some(key) = ::compris::resolve::Resolve::resolve_with_errors(key, errors)? {
resolved.#field_name.insert(key, #null);
}
} else
}
} else {
quote! {
if value.is_null() {
resolved.#field_name = #null;
} else
}
}
}
None => Default::default(),
}
}
}
}