26 lines
788 B
Gleam
26 lines
788 B
Gleam
import birl.{type Time}
|
|
import gleam/dynamic/decode.{type Decoder}
|
|
import spacetraders_sdk/models/ship_nav_route_waypoint.{
|
|
type ShipNavRouteWaypoint,
|
|
}
|
|
import spacetraders_sdk/utils/api
|
|
|
|
pub type ShipNavRoute {
|
|
ShipNavRoute(
|
|
destination: ShipNavRouteWaypoint,
|
|
origin: ShipNavRouteWaypoint,
|
|
departure_time: Time,
|
|
arrival: Time,
|
|
)
|
|
}
|
|
|
|
pub fn decoder() -> Decoder(ShipNavRoute) {
|
|
use destination <- decode.field(
|
|
"destination",
|
|
ship_nav_route_waypoint.decoder(),
|
|
)
|
|
use origin <- decode.field("origin", ship_nav_route_waypoint.decoder())
|
|
use departure_time <- decode.field("departureTime", api.time_decoder())
|
|
use arrival <- decode.field("arrival", api.time_decoder())
|
|
decode.success(ShipNavRoute(destination:, origin:, departure_time:, arrival:))
|
|
}
|