smarty_rust_sdk/international_autocomplete_api/
lookup.rs1use crate::international_autocomplete_api::suggestion::SuggestionListing;
2use crate::sdk::has_param;
3
4#[derive(Clone, Debug, PartialEq)]
5pub struct Lookup {
6 pub country: String,
7 pub search: String,
8 pub address_id: String,
9 pub max_results: i32,
10 pub include_only_locality: String,
11 pub include_only_postal_code: String,
12 pub results: SuggestionListing,
13}
14
15impl Default for Lookup {
16 fn default() -> Self {
17 Lookup {
18 country: String::default(),
19 search: String::default(),
20 address_id: String::default(),
21 max_results: 5,
22 include_only_locality: "".to_string(),
23 include_only_postal_code: "".to_string(),
24
25 results: SuggestionListing {
26 suggestions: vec![],
27 },
28 }
29 }
30}
31
32impl Lookup {
33 pub(crate) fn into_param_array(self) -> Vec<(String, String)> {
34 vec![
35 has_param("country".to_string(), self.country),
36 has_param("search".to_string(), self.search),
37 has_param("address_id".to_string(), self.address_id),
38 has_param("max_results".to_string(), self.max_results.to_string()),
39 has_param(
40 "include_only_locality".to_string(),
41 self.include_only_locality,
42 ),
43 has_param(
44 "include_only_postal_code".to_string(),
45 self.include_only_postal_code,
46 ),
47 ]
48 .iter()
49 .filter_map(Option::clone)
50 .collect::<Vec<_>>()
51 }
52}