gleam-spacetraders-sdk/src/spacetraders_sdk/models/ship_fuel.gleam

18 lines
589 B
Gleam

import gleam/dynamic/decode.{type Decoder}
import gleam/option.{type Option}
import spacetraders_sdk/models/ship_fuel_consumed.{type ShipFuelConsumed}
pub type ShipFuel {
ShipFuel(current: Int, capacity: Int, consumed: Option(ShipFuelConsumed))
}
pub fn decoder() -> Decoder(ShipFuel) {
use current <- decode.field("current", decode.int)
use capacity <- decode.field("capacity", decode.int)
use consumed <- decode.optional_field(
"consumed",
option.None,
decode.optional(ship_fuel_consumed.decoder()),
)
decode.success(ShipFuel(current:, capacity:, consumed:))
}