summaryrefslogtreecommitdiffstats
path: root/vendor/derive_builder/tests/forward_serde_attrs.rs
blob: 2ba7bcf80d998d8ede7d4aaebc49dc1d23903101 (plain)
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
#[macro_use]
extern crate derive_builder;
extern crate serde;
extern crate serde_json;

#[derive(Builder)]
#[builder(setter(into), derive(serde::Serialize))]
#[builder_struct_attr(serde(rename_all = "camelCase"))]
#[allow(dead_code)]
struct Example {
    first_name: String,
    middle_name: String,
    #[builder_field_attr(serde(rename = "familyName"))]
    last_name: String,
}

#[test]
fn serialize_builder() {
    assert_eq!(
        serde_json::to_string(
            &ExampleBuilder::default()
                .first_name("Jane")
                .middle_name("Alice")
                .last_name("Doe"),
        )
        .unwrap(),
        r#"{"firstName":"Jane","middleName":"Alice","familyName":"Doe"}"#
    );
}