Skip to main content

lta/
traffic.rs

1// @generated by satay. Do not edit by hand.
2#![allow(
3    clippy::doc_markdown,
4    clippy::missing_errors_doc,
5    clippy::must_use_candidate,
6    clippy::needless_pass_by_value,
7    clippy::return_self_not_must_use,
8    clippy::single_match_else
9)]
10
11use super::{
12    Api as RootApi, GetRoadOpeningsAction, GetRoadWorksAction, GetTrafficFlowAction,
13    GetTrafficImagesAction, GetTrafficIncidentsAction, GetTrafficSpeedBandsAction,
14};
15/// Traffic related operations.
16#[derive(Debug, Clone, Copy)]
17pub struct Api<'a> {
18    pub(crate) api: &'a RootApi,
19}
20impl<'a> Api<'a> {
21    /// Returns incidents currently happening on the roads, such as Accidents, Vehicle Breakdowns, Road Blocks, Traffic Diversions etc.
22    /// **Update freq**: 2 min
23    ///
24    /// # Optional request settings
25    ///
26    /// - [`skip`](GetTrafficIncidentsAction::skip): Number of records to skip for pagination.
27    ///
28    /// # Example
29    ///
30    /// ```rust,ignore
31    /// let request = api
32    ///     .traffic()
33    ///     .get_incidents()
34    ///     .skip(skip)
35    ///     .request()?;
36    /// ```
37    pub fn get_incidents(&self) -> GetTrafficIncidentsAction<'a> {
38        GetTrafficIncidentsAction::new(self.api)
39    }
40    /// Returns links to images from traffic cameras located around Singapore, together with each camera's location coordinates.
41    /// **Update freq**: 20 sec
42    ///
43    /// # Optional request settings
44    ///
45    /// - [`skip`](GetTrafficImagesAction::skip): Number of records to skip for pagination.
46    ///
47    /// # Example
48    ///
49    /// ```rust,ignore
50    /// let request = api
51    ///     .traffic()
52    ///     .get_images()
53    ///     .skip(skip)
54    ///     .request()?;
55    /// ```
56    pub fn get_images(&self) -> GetTrafficImagesAction<'a> {
57        GetTrafficImagesAction::new(self.api)
58    }
59    /// Returns current traffic speeds on expressways and arterial roads, expressed in speed bands.
60    ///
61    /// **Update freq**: 5 min
62    ///
63    /// # Optional request settings
64    ///
65    /// - [`skip`](GetTrafficSpeedBandsAction::skip): Number of records to skip for pagination.
66    ///
67    /// # Example
68    ///
69    /// ```rust,ignore
70    /// let request = api
71    ///     .traffic()
72    ///     .get_speed_bands()
73    ///     .skip(skip)
74    ///     .request()?;
75    /// ```
76    pub fn get_speed_bands(&self) -> GetTrafficSpeedBandsAction<'a> {
77        GetTrafficSpeedBandsAction::new(self.api)
78    }
79    /// Returns a link to a JSON file containing hourly average traffic flow, taken from a representative month of every quarter during 0700-0900 hours.
80    /// **Update freq**: Quarterly
81    pub fn get_flow(&self) -> GetTrafficFlowAction<'a> {
82        GetTrafficFlowAction::new(self.api)
83    }
84    /// Returns road works currently in progress or planned, together with event details and the responsible agency.
85    ///
86    /// **Update freq**: 24 hours – whenever there are updates
87    ///
88    /// # Optional request settings
89    ///
90    /// - [`skip`](GetRoadWorksAction::skip): Number of records to skip for pagination.
91    ///
92    /// # Example
93    ///
94    /// ```rust,ignore
95    /// let request = api
96    ///     .traffic()
97    ///     .get_road_works()
98    ///     .skip(skip)
99    ///     .request()?;
100    /// ```
101    pub fn get_road_works(&self) -> GetRoadWorksAction<'a> {
102        GetRoadWorksAction::new(self.api)
103    }
104    /// Returns all planned road openings, including the new road name and the responsible agency.
105    /// **Update freq**: 24 hours – whenever there are updates
106    ///
107    /// # Optional request settings
108    ///
109    /// - [`skip`](GetRoadOpeningsAction::skip): Number of records to skip for pagination.
110    ///
111    /// # Example
112    ///
113    /// ```rust,ignore
114    /// let request = api
115    ///     .traffic()
116    ///     .get_road_openings()
117    ///     .skip(skip)
118    ///     .request()?;
119    /// ```
120    pub fn get_road_openings(&self) -> GetRoadOpeningsAction<'a> {
121        GetRoadOpeningsAction::new(self.api)
122    }
123}