smarty_rust_sdk/international_street_api/
candidate.rs

1use 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}