Skip to content

Commit 3941cd6

Browse files
committed
refactor: Parameter constructor
1 parent 1b147ef commit 3941cd6

3 files changed

Lines changed: 13 additions & 7 deletions

File tree

examples/apikey.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,13 @@ use std::{env, error::Error};
33

44
fn main() -> Result<(), Box<dyn Error>> {
55
// read the API key from the environment variables
6-
let key = env::var("ABSTRACT_APIKEY").ok();
6+
let key = env::var("ABSTRACT_APIKEY")?;
77
let provider = LookupProvider::AbstractApi;
8-
let parameters = Parameters::new(key);
8+
// set the API key as a parameter
9+
let parameters = Some(Parameters::new(key));
10+
// create a lookup service
911
let service = LookupService::new(provider, parameters);
12+
// lookup own public IP address
1013
let result = service.lookup(None)?;
1114
println!("{}", result);
1215
Ok(())

src/lib.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ pub fn perform_lookup(target: Option<IpAddr>) -> Result<LookupResponse> {
100100
///
101101
/// let providers = vec![
102102
/// // List of providers to use for the lookup
103-
/// // (LookupProvider::IpWhoIs, Parameters::new(apikey))
103+
/// // (LookupProvider::IpWhoIs, Some(Parameters::new(apikey)))
104104
/// ];
105105
///
106106
/// match public_ip_address::perform_lookup_with(providers, None) {
@@ -168,7 +168,7 @@ pub fn perform_lookup_with(
168168
///
169169
/// let providers = vec![
170170
/// // List of providers to use for the lookup
171-
/// // (LookupProvider::IpWhoIs, Parameters::new(apikey))
171+
/// // (LookupProvider::IpWhoIs, Some(Parameters::new(apikey)))
172172
/// ];
173173
/// let expire_time = Some(60); // Cache expires after 60 seconds
174174
/// let flush = false; // Do not force cache flush

src/lookup/mod.rs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,10 @@ impl LookupProvider {
192192
.ok_or(LookupError::GenericError("No provider given".to_string()))?;
193193
let provider = p.parse::<LookupProvider>()?;
194194
// get the key if it exists
195-
let key = Parameters::new(s.get(1).cloned());
195+
let key = match s.get(1) {
196+
Some(key) => Some(Parameters::new(key.to_owned())),
197+
None => None,
198+
};
196199
Ok((provider, key))
197200
}
198201
}
@@ -205,8 +208,8 @@ pub struct Parameters {
205208
}
206209

207210
impl Parameters {
208-
pub fn new(api_key: Option<String>) -> Option<Self> {
209-
api_key.map(|api_key| Parameters { api_key })
211+
pub fn new(api_key: String) -> Self {
212+
Self { api_key }
210213
}
211214
}
212215

0 commit comments

Comments
 (0)