smarty_rust_sdk/international_street_api/
candidate.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
4#[serde(default)]
5pub struct Candidate {
6 pub input_id: String,
7 #[serde(flatten)]
8 pub root_level: RootLevel,
9 pub components: Components,
10 pub metadata: Metadata,
11 pub analysis: Analysis,
12}
13
14#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
15#[serde(default)]
16pub struct RootLevel {
17 pub organization: String,
18 pub address1: String,
19 pub address2: String,
20 pub address3: String,
21 pub address4: String,
22 pub address5: String,
23 pub address6: String,
24 pub address7: String,
25 pub address8: String,
26 pub address9: String,
27 pub address10: String,
28 pub address11: String,
29 pub address12: String,
30}
31
32#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
33#[serde(default)]
34pub struct Components {
35 pub super_administrative_area: String,
36 pub administrative_area: String,
37 pub administrative_area_iso2: String,
38 pub administrative_area_short: String,
39 pub administrative_area_long: String,
40 pub sub_administrative_area: String,
41 pub building: String,
42 pub dependent_locality: String,
43 pub dependent_locality_name: String,
44 pub double_dependent_locality: String,
45 pub country_iso_3: String,
46 pub locality: String,
47 pub postal_code: String,
48 pub postal_code_short: String,
49 pub postal_code_extra: String,
50 pub premise: String,
51 pub premise_extra: String,
52 pub premise_number: String,
53 pub premise_type: String,
54 pub premise_prefix_number: String,
55 pub thoroughfare: String,
56 pub thoroughfare_predirection: String,
57 pub thoroughfare_postdirection: String,
58 pub thoroughfare_name: String,
59 pub thoroughfare_trailing_type: String,
60 pub thoroughfare_type: String,
61 pub dependent_thoroughfare: String,
62 pub dependent_thoroughfare_predirection: String,
63 pub dependent_thoroughfare_postdirection: String,
64 pub dependent_thoroughfare_name: String,
65 pub dependent_thoroughfare_trailing_type: String,
66 pub dependent_thoroughfare_type: String,
67 pub building_leading_type: String,
68 pub building_name: String,
69 pub building_trailing_type: String,
70 pub sub_building_type: String,
71 pub sub_building_number: String,
72 pub sub_building_name: String,
73 pub sub_building: String,
74 pub level_type: String,
75 pub level_number: String,
76 pub post_box: String,
77 pub post_box_type: String,
78 pub post_box_number: String,
79 pub additional_content: String,
80 pub delivery_installation: String,
81 pub delivery_installation_type: String,
82 pub delivery_installation_qualifier_name: String,
83 pub route: String,
84 pub route_number: String,
85 pub route_type: String,
86}
87
88#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
89#[serde(default)]
90pub struct Metadata {
91 pub latitude: f64,
92 pub longitude: f64,
93 pub geocode_precision: String,
94 pub max_geocode_precision: String,
95 pub address_format: String,
96 pub occupant_use: String,
97}
98
99#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
100#[serde(default)]
101pub struct Analysis {
102 pub verification_status: String,
103 pub address_precision: String,
104 pub max_address_precision: String,
105
106 pub changes: Changes,
107}
108
109#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
110#[serde(default)]
111pub struct Changes {
112 #[serde(flatten)]
113 pub root_level: RootLevel,
114
115 pub components: Components,
116}