Struct tankerkoenig::api::price::PriceApi
source · pub struct PriceApi { /* private fields */ }
Expand description
Struct that holds the current reqwest client of the library and gives access to the price api of the tankerkoenig API.
§Example
use tankerkoenig::Tankerkoenig;
use tankerkoenig::models;
async fn request_station_prices() -> Result<models::PriceResponse, tankerkoenig::Error> {
let tanker = Tankerkoenig::new("your-api-key")?;
let prices = tanker.price.fetch(&[Some("station-id-1"), Some("station-id-2"), Some("station-id-3"), Some("station-id-4"), Some("station-id-5"), None, None, None, None, None]).await?;
Ok(prices)
}
Implementations§
source§impl PriceApi
impl PriceApi
sourcepub async fn fetch<S>(
&self,
ids: &[Option<S>; 10],
) -> Result<PriceResponse, TankerkoenigError>
pub async fn fetch<S>( &self, ids: &[Option<S>; 10], ) -> Result<PriceResponse, TankerkoenigError>
Fetch the prices of all fuel types of the given station ids (up to 10 at once).
You can only fetch prices for 10 stations at once. If you want to fetch more than 10 stations,
you have to call this function multiple times. This is due to a limitation of the
tankerkoenig API. Use the helper macro@chunk_into_option_arrays
to make this easier.
§Example
use tankerkoenig::Tankerkoenig;
use tankerkoenig::models;
async fn request_station_prices() -> Result<models::PriceResponse, tankerkoenig::Error> {
let tanker = Tankerkoenig::new("your-api-key")?;
let prices = tanker.price.fetch(&[Some("station-id-1"), Some("station-id-2"), Some("station-id-3"), Some("station-id-4"), Some("station-id-5"), None, None, None, None, None]).await?;
Ok(prices)
}
§Example with macro@chunk_into_option_arrays
use tankerkoenig::Tankerkoenig;
use tankerkoenig::models;
use tankerkoenig::chunk_into_option_arrays;
async fn request_station_prices() -> Result<Vec<models::PriceResponse>, tankerkoenig::Error> {
let tanker = Tankerkoenig::new("your-api-key")?;
let station_ids = ["id-1", "id-2", "id-3", "id-4", "id-5", "id-6", "id-7"];
let mut all_prices = Vec::new();
for chunk in chunk_into_option_arrays!(station_ids) {
let prices = tanker.price.fetch(&chunk).await?;
// Remember to wait between the requests to not get blocked by the API
all_prices.push(prices);
}
Ok(all_prices)
}
sourcepub async fn fetch_one<S>(
&self,
id: S,
) -> Result<PriceResponse, TankerkoenigError>
pub async fn fetch_one<S>( &self, id: S, ) -> Result<PriceResponse, TankerkoenigError>
Fetch the prices of a single station
§Example
use tankerkoenig::Tankerkoenig;
use tankerkoenig::models;
async fn request_single_station_prices() -> Result<models::PriceResponse, tankerkoenig::Error> {
let tanker = Tankerkoenig::new("your-api-key")?;
let station_prices = tanker.price.fetch_one("station-id").await?;
Ok(station_prices)
}
Trait Implementations§
Auto Trait Implementations§
impl Freeze for PriceApi
impl !RefUnwindSafe for PriceApi
impl !Send for PriceApi
impl !Sync for PriceApi
impl Unpin for PriceApi
impl !UnwindSafe for PriceApi
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)