Switched realtime update feed from JSON to Protobuf.
This commit is contained in:
+10
-3
@@ -28,8 +28,13 @@ impl Gtfs<'_> {
|
||||
}
|
||||
|
||||
// Parse response
|
||||
let realtime_info: gtfs_realtime::FeedMessage
|
||||
= serde_json::from_reader(response)?;
|
||||
let response_bytes= response.bytes()?;
|
||||
let data: Result<gtfs_realtime::FeedMessage, prost::DecodeError> = prost::Message::decode(response_bytes.as_ref());
|
||||
if data.is_err() {
|
||||
return Err(Error {
|
||||
_message : format! ("Error loading realtime prtobuf: {:#?}", data.err().unwrap())
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// Build a map of (trip, stop) -> Arrival for faster lookup
|
||||
@@ -41,7 +46,9 @@ impl Gtfs<'_> {
|
||||
}
|
||||
|
||||
// Match deltas to existing arrivals
|
||||
for entity in realtime_info.entity {
|
||||
let entities = data.unwrap().entity;
|
||||
debug!("Loaded {} entities from realtime update.", entities.len());
|
||||
for entity in entities {
|
||||
if entity.trip_update.is_some() && entity.stop.is_some() {
|
||||
let trip_update = entity.trip_update.unwrap();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user