45 lines
1.1 KiB
Go
45 lines
1.1 KiB
Go
package kmb
|
|
|
|
import (
|
|
query "github.com/tgckpg/golifehk/query"
|
|
)
|
|
|
|
type RouteStop struct {
|
|
BusStop *BusStop
|
|
RouteId string `json:"route"`
|
|
ServiceType string `json:"service_type"`
|
|
Direction string `json:"bound"`
|
|
StationSeq int `json:"seq,string"`
|
|
StationId string `json:"stop"`
|
|
|
|
RouteStops *map[int] *RouteStop
|
|
query.Searchable
|
|
}
|
|
|
|
type RouteStops struct {
|
|
Type string `json:"type"`
|
|
Version string `json:"version"`
|
|
DateCreated string `json:"generated_timestamp"`
|
|
RouteStops [] *RouteStop `json:"data"`
|
|
}
|
|
|
|
func ( routeStop RouteStop ) PrevStop() *RouteStop {
|
|
if v, hasKey := (*routeStop.RouteStops)[ routeStop.StationSeq - 1 ]; hasKey {
|
|
return v
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func ( routeStop RouteStop ) NextStop() *RouteStop {
|
|
if v, hasKey := (*routeStop.RouteStops)[ routeStop.StationSeq + 1 ]; hasKey {
|
|
return v
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type ByRouteId []RouteStop
|
|
|
|
func (a ByRouteId) Len() int { return len(a) }
|
|
func (a ByRouteId) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
|
|
func (a ByRouteId) Less(i, j int) bool { return a[i].RouteId < a[j].RouteId }
|