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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
//! Transit directions return additional information.
use crate::directions::response::{
transit_line::TransitLine,
transit_stop::TransitStop,
transit_time::TransitTime,
}; // use crate::directions::response
use serde::{Deserialize, Serialize};
/// Transit directions return additional information that is not relevant for
/// other modes of transportation. These additional properties are exposed
/// through the `transit_details` object, returned as a field of an element in
/// the `steps[]` array. From the `TransitDetails` object you can access
/// additional information about the transit stop, transit line and transit
/// agency.
#[derive(Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)]
pub struct TransitDetails {
/// Contains information about the stop/station for this part of the trip.
pub arrival_stop: TransitStop,
/// Contains the arrival for this leg of the journey.
pub arrival_time: TransitTime,
/// Contains information about the stop/station for this part of the trip.
pub departure_stop: TransitStop,
/// Contains the departure for this leg of the journey.
pub departure_time: TransitTime,
/// Specifies the direction in which to travel on this line, as it is marked
/// on the vehicle or at the departure stop. This will often be the terminus
/// station.
pub headsign: String,
/// Specifies the expected number of seconds between departures from the
/// same stop at this time. For example, with a headway value of 600, you
/// would expect a ten minute wait if you should miss your bus.
pub headway: Option<u16>,
/// Contains information about the transit line used in this step.
pub line: TransitLine,
/// Contains the number of stops in this step, counting the arrival stop,
/// but not the departure stop. For example, if your directions involve
/// leaving from Stop A, passing through stops B and C, and arriving at stop
/// D, num_stops will return 3.
pub num_stops: u8,
/// Contains the text that appears in schedules and sign boards to identify
/// a transit trip to passengers. The text should uniquely identify a trip
/// within a service day. For example, "538" is the `trip_short_name` of the
/// Amtrak train that leaves San Jose, CA at 15:10 on weekdays to
/// Sacramento, CA.
pub trip_short_name: Option<String>,
} // struct