Typy nowe
This commit is contained in:
parent
7690e4cdc4
commit
619a921b1e
@ -1,5 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
|
<component name="GradleMigrationSettings" migrationVersion="1" />
|
||||||
<component name="GradleSettings">
|
<component name="GradleSettings">
|
||||||
<option name="linkedExternalProjectsSettings">
|
<option name="linkedExternalProjectsSettings">
|
||||||
<GradleProjectSettings>
|
<GradleProjectSettings>
|
||||||
|
|||||||
@ -26,6 +26,10 @@ interface LabelsKLib {
|
|||||||
|
|
||||||
val ampere: String
|
val ampere: String
|
||||||
|
|
||||||
|
val tesla: String
|
||||||
|
|
||||||
|
val lux: String
|
||||||
|
|
||||||
val second: String
|
val second: String
|
||||||
val hour: String
|
val hour: String
|
||||||
|
|
||||||
@ -35,6 +39,13 @@ interface LabelsKLib {
|
|||||||
|
|
||||||
val degree: String
|
val degree: String
|
||||||
|
|
||||||
|
val percent: String
|
||||||
|
|
||||||
|
val double: String
|
||||||
|
|
||||||
|
val hz: String
|
||||||
|
val bpm: String
|
||||||
|
|
||||||
val mega: String
|
val mega: String
|
||||||
val kilo: String
|
val kilo: String
|
||||||
val hecto: String
|
val hecto: String
|
||||||
|
|||||||
@ -10,3 +10,4 @@ interface AngleI : TypedDouble
|
|||||||
data class Angle(override val value: Double) : AngleI
|
data class Angle(override val value: Double) : AngleI
|
||||||
|
|
||||||
val deg: NotSiUnit<AngleI> = notSiUnit({ degree }, 1.0) { Angle(it) }
|
val deg: NotSiUnit<AngleI> = notSiUnit({ degree }, 1.0) { Angle(it) }
|
||||||
|
val rad: NotSiUnit<AngleI> = notSiUnit({ "rad" }, 0.01745329252) { Angle(it) }
|
||||||
|
|||||||
11
src/main/java/org/lemiesz/klib/types/Double.kt
Normal file
11
src/main/java/org/lemiesz/klib/types/Double.kt
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
package org.lemiesz.klib.types
|
||||||
|
|
||||||
|
import org.lemiesz.klib.types.lib.NotSiUnit
|
||||||
|
import org.lemiesz.klib.types.lib.TypedDouble
|
||||||
|
import org.lemiesz.klib.types.lib.notSiUnit
|
||||||
|
|
||||||
|
|
||||||
|
//@JvmInline
|
||||||
|
data class GenericDouble(override val value: Double) : TypedDouble
|
||||||
|
|
||||||
|
val double: NotSiUnit<GenericDouble> = notSiUnit({ double }, 1.0) { GenericDouble(it) }
|
||||||
11
src/main/java/org/lemiesz/klib/types/Frequency.kt
Normal file
11
src/main/java/org/lemiesz/klib/types/Frequency.kt
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
package org.lemiesz.klib.types
|
||||||
|
|
||||||
|
import org.lemiesz.klib.types.lib.TypedDouble
|
||||||
|
import org.lemiesz.klib.types.lib.notSiUnit
|
||||||
|
import org.lemiesz.klib.types.lib.siUnit
|
||||||
|
|
||||||
|
@JvmInline
|
||||||
|
value class Frequency(override val value: Double) : TypedDouble
|
||||||
|
|
||||||
|
val Hz = siUnit({ hz }, 1.0) { Frequency(it) }
|
||||||
|
val bpm = notSiUnit({ bpm }, 0.01666666667) { Frequency(it) }
|
||||||
9
src/main/java/org/lemiesz/klib/types/Illuminance.kt
Normal file
9
src/main/java/org/lemiesz/klib/types/Illuminance.kt
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
package org.lemiesz.klib.types
|
||||||
|
|
||||||
|
import org.lemiesz.klib.types.lib.TypedDouble
|
||||||
|
import org.lemiesz.klib.types.lib.siUnit
|
||||||
|
|
||||||
|
@JvmInline
|
||||||
|
value class Illuminance(override val value: Double) : TypedDouble
|
||||||
|
|
||||||
|
val lux = siUnit({ lux }, 1.0) { Illuminance(it) }
|
||||||
9
src/main/java/org/lemiesz/klib/types/Magnetic.kt
Normal file
9
src/main/java/org/lemiesz/klib/types/Magnetic.kt
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
package org.lemiesz.klib.types
|
||||||
|
|
||||||
|
import org.lemiesz.klib.types.lib.TypedDouble
|
||||||
|
import org.lemiesz.klib.types.lib.siUnit
|
||||||
|
|
||||||
|
@JvmInline
|
||||||
|
value class Magnetic(override val value: Double) : TypedDouble
|
||||||
|
|
||||||
|
val T = siUnit({ tesla }, 1.0) { Magnetic(it) }
|
||||||
11
src/main/java/org/lemiesz/klib/types/Percent.kt
Normal file
11
src/main/java/org/lemiesz/klib/types/Percent.kt
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
package org.lemiesz.klib.types
|
||||||
|
|
||||||
|
import org.lemiesz.klib.types.lib.NotSiUnit
|
||||||
|
import org.lemiesz.klib.types.lib.TypedDouble
|
||||||
|
import org.lemiesz.klib.types.lib.notSiUnit
|
||||||
|
|
||||||
|
|
||||||
|
//@JvmInline
|
||||||
|
data class Percent(override val value: Double) : TypedDouble
|
||||||
|
|
||||||
|
val percent: NotSiUnit<GenericDouble> = notSiUnit({ percent }, 1.0) { GenericDouble(it) }
|
||||||
24
src/main/java/org/lemiesz/klib/types/RotationRate.kt
Normal file
24
src/main/java/org/lemiesz/klib/types/RotationRate.kt
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
package org.lemiesz.klib.types
|
||||||
|
|
||||||
|
import org.lemiesz.klib.flow.combineStateFlow
|
||||||
|
import org.lemiesz.klib.types.lib.*
|
||||||
|
|
||||||
|
//@JvmInline
|
||||||
|
data class RotationRate(override val value: Double) : TypedDouble
|
||||||
|
|
||||||
|
|
||||||
|
val radS = rad / s
|
||||||
|
val degS = deg / s
|
||||||
|
|
||||||
|
|
||||||
|
operator fun <T : AngleI> MultiplierUnit<T>.div(divider: MultiplierUnit<TimeSpan>) = NotSiUnit(
|
||||||
|
label = {
|
||||||
|
label().combineStateFlow(this, divider.label(this)) { s1, s2 ->
|
||||||
|
"$s1/$s2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
multiplier = multiplier / divider.multiplier
|
||||||
|
) {
|
||||||
|
RotationRate(it)
|
||||||
|
}
|
||||||
|
|
||||||
@ -26,5 +26,5 @@ val hecto = UnitModifier(100.0) { hecto }
|
|||||||
val deca = UnitModifier(10.0) { deca }
|
val deca = UnitModifier(10.0) { deca }
|
||||||
val centi = UnitModifier(0.01) { centi }
|
val centi = UnitModifier(0.01) { centi }
|
||||||
val milli = UnitModifier(0.001) { milli }
|
val milli = UnitModifier(0.001) { milli }
|
||||||
val micro = UnitModifier(0.000_001) { milli }
|
val micro = UnitModifier(0.000_001) { micro }
|
||||||
val nano = UnitModifier(0.000_000_001) { milli }
|
val nano = UnitModifier(0.000_000_001) { nano }
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user