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}