1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
use crate::lta_client::LTAClient;
use crate::utils::commons::{build_req, Result};
pub mod taxi_avail {
use serde::{Deserialize, Serialize};
pub const URL: &str = "http://datamall2.mytransport.sg/ltaodataservice/Taxi-Availability";
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct Coordinates {
#[serde(rename = "Longitude")]
pub long: f64,
#[serde(rename = "Latitude")]
pub lat: f64,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct TaxiAvailResp {
pub value: Vec<Coordinates>,
}
}
pub fn get_taxi_avail(client: <AClient) -> Result<Vec<taxi_avail::Coordinates>> {
let resp: taxi_avail::TaxiAvailResp = build_req(client, taxi_avail::URL)?;
Ok(resp.value)
}