Skip to content

Commit fc37f74

Browse files
committed
feat: Unit from alias parsing method
Note that it also includes a new `Unknown` unit in case it cannot be parsed.
1 parent 34d28d3 commit fc37f74

1 file changed

Lines changed: 7 additions & 0 deletions

File tree

  • lib/src/main/kotlin/com/openmeteo/api/common/units

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import kotlinx.serialization.Serializable
77

88
@Serializable
99
enum class Unit(vararg val alias: @Contextual Any) {
10+
Unknown,
11+
1012
@SerialName("iso8601")
1113
Iso8601(TimeFormat.Iso8601),
1214

@@ -95,6 +97,11 @@ enum class Unit(vararg val alias: @Contextual Any) {
9597
GramsPerKilogram,
9698

9799
;
100+
companion object {
101+
fun from(that: Any) =
102+
values().firstOrNull { it.aliasOf(that) }
103+
?: Unknown
104+
}
98105

99106
fun aliasOf(other: Any) =
100107
other in alias

0 commit comments

Comments
 (0)