Skip to content

Commit 1afe80a

Browse files
committed
feat: Marine metric/imperial length units
1 parent 4277fee commit 1afe80a

4 files changed

Lines changed: 27 additions & 2 deletions

File tree

lib/src/main/kotlin/com/openmeteo/api/Marine.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import com.openmeteo.api.common.Options
55
import com.openmeteo.api.common.http.Endpoint
66
import com.openmeteo.api.common.time.Date
77
import com.openmeteo.api.common.time.Timezone
8+
import com.openmeteo.api.common.units.LengthUnit
89
import com.openmeteo.api.common.units.Unit
910
import kotlinx.serialization.SerialName
1011
import kotlinx.serialization.Serializable
@@ -32,8 +33,10 @@ object Marine : Endpoint(
3233
override val pastDays: Int? = null,
3334
override val timezone: Timezone? = null,
3435
override val cellSelection: CellSelection? = null,
36+
@SerialName("length_unit")
37+
override val lengthUnit: LengthUnit? = null,
3538
) : Q.Coordinate, Q.Daily, Q.Hourly, Q.TimeFormat, Q.Timezone, Q.PastDays,
36-
Q.DateRange, Q.CellSelection
39+
Q.DateRange, Q.CellSelection, Q.LengthUnit
3740

3841
@Serializable
3942
open class Response(

lib/src/main/kotlin/com/openmeteo/api/common/query/Query.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,16 @@ interface Query {
188188
val precipitationUnit: com.openmeteo.api.common.units.PrecipitationUnit?
189189
}
190190

191+
/**
192+
* Query for resources that may include lengths
193+
*/
194+
interface LengthUnit : Query {
195+
/**
196+
* The requested length unit
197+
*/
198+
val lengthUnit: com.openmeteo.api.common.units.LengthUnit?
199+
}
200+
191201
/**
192202
* Query for resources that can use different data models.
193203
*/
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package com.openmeteo.api.common.units
2+
3+
import kotlinx.serialization.SerialName
4+
5+
enum class LengthUnit {
6+
@SerialName("metric")
7+
Metric,
8+
@SerialName("imperial")
9+
Imperial,
10+
}

lib/src/main/kotlin/com/openmeteo/api/common/units/Unit.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,9 @@ enum class Unit(vararg val alias: @Contextual Any) {
3636
@SerialName("cm")
3737
Centimeters,
3838
@SerialName("m")
39-
Meters,
39+
Meters(LengthUnit.Metric),
40+
@SerialName("ft")
41+
Feet(LengthUnit.Imperial),
4042
@SerialName("W/m²")
4143
WattPerSquareMeter,
4244
@SerialName("μg/m³")

0 commit comments

Comments
 (0)