File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -3,10 +3,13 @@ use std::{env, error::Error};
33
44fn 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 ( ( ) )
Original file line number Diff line number Diff 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
Original file line number Diff line number Diff 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
207210impl 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
You can’t perform that action at this time.
0 commit comments