Ship 15-task plan via kmp-manager group-by-group flow. Library moves
from "prototype" to "senior-engineer-built KMP library" per 3-reviewer
audit (android-reviewer + mobile-performance-reviewer + mobile-architect).
Critical fixes:
- LICENSE MIT (T1) — legal blocker resolved
- explicitApi() Strict + BCV 0.16.3 + klib enabled (T2) — ABI locked
baseline: chart-realtime.api 161 LOC + chart-realtime.klib.api 211 LOC
- Internal lockdown: CircularBuffer, TieredBuffer, LodDecimator,
dataVersion, rememberFrameTick (T3)
- kotlinx-datetime 0.6.2 replaces expect/actual currentTimeMs (T4)
Platform.kt + .android.kt + .ios.kt deleted
- CircularBuffer.writeIndex Int -> Long (T5) — fix 124d overflow @ 200Hz
- Remove !! and @Suppress("UNUSED_EXPRESSION") from commonMain (T6)
- Remove dead config: maxBufferSeconds, xLabelDecimals,
SignalConfig.label (T7)
Correctness:
- POSITIVE_INFINITY/Float.MAX_VALUE sentinels -> hasData flag (T8)
- Snapshot.withMutableSnapshot + SnapshotApplyConflictException retry
in push/addSignal/removeSignal (T9)
- dataVersion mutableLongStateOf — Compose-observable, idle = 0
recompositions (T10) — RenderLoop.kt deleted, targetFps @Deprecated
- Single buffer.snapshot() per signal per frame via SignalEntry
per-signal scratch arrays (T11) — render-time snapshot cost halved
- M4 binning Tier1/Tier2: firstTs/V + minTs/V + maxTs/V + lastTs/V
with chronological dedup (T12) — no C7 vertical spike artifacts.
TIER1/TIER2 CAPACITY x2 -> x4 (TOTAL 77.4k -> 94.8k)
- NaN/Inf/backward-timestamp guards on push (T13) — silent drop,
per-signal lastPushedTs tracking, KDoc contract
Test gap fill:
- NumberFormat extracted from AxisRenderer to internal object (T14)
+38 tests pinning rounding/scientific/time-format behavior
- TieredBufferTest +15 tests: tier roll, window-crossing, clear,
edge cases (T15)
- LodDecimatorTest +10 LTTB-specific branch coverage tests (T15)
Test count: 33 -> 107 (+74).
ABI: 211/272 -> 161/211 LOC (locked, baseline committed).
Deferred to v0.5.0:
- Bump kotlinx-datetime 0.6.2 -> 0.7.x (needs Kotlin 2.1.20+)
- Remove ChartConfig.targetFps (currently @Deprecated, ignored)
- NumberFormat Long overflow @ 1e19 (safe via current routing)
- LTTB upper-bound inclusive vs snapshot half-open semantic mismatch
- Macrobench setup for -30% frame-time verification
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
213 lines
26 KiB
Text
213 lines
26 KiB
Text
// Klib ABI Dump
|
|
// Targets: [iosArm64, iosSimulatorArm64, iosX64]
|
|
// Rendering settings:
|
|
// - Signature version: 2
|
|
// - Show manifest properties: true
|
|
// - Show declarations: true
|
|
|
|
// Library unique name: <dev.dtrentin:chart-realtime>
|
|
final enum class dev.dtrentin.chart.model/AxisLabelMode : kotlin/Enum<dev.dtrentin.chart.model/AxisLabelMode> { // dev.dtrentin.chart.model/AxisLabelMode|null[0]
|
|
enum entry BESIDE // dev.dtrentin.chart.model/AxisLabelMode.BESIDE|null[0]
|
|
enum entry HIDDEN // dev.dtrentin.chart.model/AxisLabelMode.HIDDEN|null[0]
|
|
enum entry INSIDE // dev.dtrentin.chart.model/AxisLabelMode.INSIDE|null[0]
|
|
|
|
final val entries // dev.dtrentin.chart.model/AxisLabelMode.entries|#static{}entries[0]
|
|
final fun <get-entries>(): kotlin.enums/EnumEntries<dev.dtrentin.chart.model/AxisLabelMode> // dev.dtrentin.chart.model/AxisLabelMode.entries.<get-entries>|<get-entries>#static(){}[0]
|
|
|
|
final fun valueOf(kotlin/String): dev.dtrentin.chart.model/AxisLabelMode // dev.dtrentin.chart.model/AxisLabelMode.valueOf|valueOf#static(kotlin.String){}[0]
|
|
final fun values(): kotlin/Array<dev.dtrentin.chart.model/AxisLabelMode> // dev.dtrentin.chart.model/AxisLabelMode.values|values#static(){}[0]
|
|
}
|
|
|
|
final enum class dev.dtrentin.chart.model/LodMode : kotlin/Enum<dev.dtrentin.chart.model/LodMode> { // dev.dtrentin.chart.model/LodMode|null[0]
|
|
enum entry LTTB // dev.dtrentin.chart.model/LodMode.LTTB|null[0]
|
|
enum entry MIN_MAX // dev.dtrentin.chart.model/LodMode.MIN_MAX|null[0]
|
|
|
|
final val entries // dev.dtrentin.chart.model/LodMode.entries|#static{}entries[0]
|
|
final fun <get-entries>(): kotlin.enums/EnumEntries<dev.dtrentin.chart.model/LodMode> // dev.dtrentin.chart.model/LodMode.entries.<get-entries>|<get-entries>#static(){}[0]
|
|
|
|
final fun valueOf(kotlin/String): dev.dtrentin.chart.model/LodMode // dev.dtrentin.chart.model/LodMode.valueOf|valueOf#static(kotlin.String){}[0]
|
|
final fun values(): kotlin/Array<dev.dtrentin.chart.model/LodMode> // dev.dtrentin.chart.model/LodMode.values|values#static(){}[0]
|
|
}
|
|
|
|
final class dev.dtrentin.chart.model/ChartConfig { // dev.dtrentin.chart.model/ChartConfig|null[0]
|
|
constructor <init>(kotlin/Float = ..., dev.dtrentin.chart.model/YRange = ..., dev.dtrentin.chart.model/T0 = ..., kotlin/Int? = ..., dev.dtrentin.chart.model/ChartTheme = ..., kotlin/Boolean = ..., dev.dtrentin.chart.model/AxisLabelMode = ..., dev.dtrentin.chart.model/AxisLabelMode = ..., kotlin/Int = ..., dev.dtrentin.chart.model/LodMode = ...) // dev.dtrentin.chart.model/ChartConfig.<init>|<init>(kotlin.Float;dev.dtrentin.chart.model.YRange;dev.dtrentin.chart.model.T0;kotlin.Int?;dev.dtrentin.chart.model.ChartTheme;kotlin.Boolean;dev.dtrentin.chart.model.AxisLabelMode;dev.dtrentin.chart.model.AxisLabelMode;kotlin.Int;dev.dtrentin.chart.model.LodMode){}[0]
|
|
|
|
final val lodMode // dev.dtrentin.chart.model/ChartConfig.lodMode|{}lodMode[0]
|
|
final fun <get-lodMode>(): dev.dtrentin.chart.model/LodMode // dev.dtrentin.chart.model/ChartConfig.lodMode.<get-lodMode>|<get-lodMode>(){}[0]
|
|
final val showGrid // dev.dtrentin.chart.model/ChartConfig.showGrid|{}showGrid[0]
|
|
final fun <get-showGrid>(): kotlin/Boolean // dev.dtrentin.chart.model/ChartConfig.showGrid.<get-showGrid>|<get-showGrid>(){}[0]
|
|
final val t0 // dev.dtrentin.chart.model/ChartConfig.t0|{}t0[0]
|
|
final fun <get-t0>(): dev.dtrentin.chart.model/T0 // dev.dtrentin.chart.model/ChartConfig.t0.<get-t0>|<get-t0>(){}[0]
|
|
final val targetFps // dev.dtrentin.chart.model/ChartConfig.targetFps|{}targetFps[0]
|
|
final fun <get-targetFps>(): kotlin/Int? // dev.dtrentin.chart.model/ChartConfig.targetFps.<get-targetFps>|<get-targetFps>(){}[0]
|
|
final val theme // dev.dtrentin.chart.model/ChartConfig.theme|{}theme[0]
|
|
final fun <get-theme>(): dev.dtrentin.chart.model/ChartTheme // dev.dtrentin.chart.model/ChartConfig.theme.<get-theme>|<get-theme>(){}[0]
|
|
final val xLabelMode // dev.dtrentin.chart.model/ChartConfig.xLabelMode|{}xLabelMode[0]
|
|
final fun <get-xLabelMode>(): dev.dtrentin.chart.model/AxisLabelMode // dev.dtrentin.chart.model/ChartConfig.xLabelMode.<get-xLabelMode>|<get-xLabelMode>(){}[0]
|
|
final val xWindowSeconds // dev.dtrentin.chart.model/ChartConfig.xWindowSeconds|{}xWindowSeconds[0]
|
|
final fun <get-xWindowSeconds>(): kotlin/Float // dev.dtrentin.chart.model/ChartConfig.xWindowSeconds.<get-xWindowSeconds>|<get-xWindowSeconds>(){}[0]
|
|
final val yLabelDecimals // dev.dtrentin.chart.model/ChartConfig.yLabelDecimals|{}yLabelDecimals[0]
|
|
final fun <get-yLabelDecimals>(): kotlin/Int // dev.dtrentin.chart.model/ChartConfig.yLabelDecimals.<get-yLabelDecimals>|<get-yLabelDecimals>(){}[0]
|
|
final val yLabelMode // dev.dtrentin.chart.model/ChartConfig.yLabelMode|{}yLabelMode[0]
|
|
final fun <get-yLabelMode>(): dev.dtrentin.chart.model/AxisLabelMode // dev.dtrentin.chart.model/ChartConfig.yLabelMode.<get-yLabelMode>|<get-yLabelMode>(){}[0]
|
|
final val yRange // dev.dtrentin.chart.model/ChartConfig.yRange|{}yRange[0]
|
|
final fun <get-yRange>(): dev.dtrentin.chart.model/YRange // dev.dtrentin.chart.model/ChartConfig.yRange.<get-yRange>|<get-yRange>(){}[0]
|
|
|
|
final fun component1(): kotlin/Float // dev.dtrentin.chart.model/ChartConfig.component1|component1(){}[0]
|
|
final fun component10(): dev.dtrentin.chart.model/LodMode // dev.dtrentin.chart.model/ChartConfig.component10|component10(){}[0]
|
|
final fun component2(): dev.dtrentin.chart.model/YRange // dev.dtrentin.chart.model/ChartConfig.component2|component2(){}[0]
|
|
final fun component3(): dev.dtrentin.chart.model/T0 // dev.dtrentin.chart.model/ChartConfig.component3|component3(){}[0]
|
|
final fun component4(): kotlin/Int? // dev.dtrentin.chart.model/ChartConfig.component4|component4(){}[0]
|
|
final fun component5(): dev.dtrentin.chart.model/ChartTheme // dev.dtrentin.chart.model/ChartConfig.component5|component5(){}[0]
|
|
final fun component6(): kotlin/Boolean // dev.dtrentin.chart.model/ChartConfig.component6|component6(){}[0]
|
|
final fun component7(): dev.dtrentin.chart.model/AxisLabelMode // dev.dtrentin.chart.model/ChartConfig.component7|component7(){}[0]
|
|
final fun component8(): dev.dtrentin.chart.model/AxisLabelMode // dev.dtrentin.chart.model/ChartConfig.component8|component8(){}[0]
|
|
final fun component9(): kotlin/Int // dev.dtrentin.chart.model/ChartConfig.component9|component9(){}[0]
|
|
final fun copy(kotlin/Float = ..., dev.dtrentin.chart.model/YRange = ..., dev.dtrentin.chart.model/T0 = ..., kotlin/Int? = ..., dev.dtrentin.chart.model/ChartTheme = ..., kotlin/Boolean = ..., dev.dtrentin.chart.model/AxisLabelMode = ..., dev.dtrentin.chart.model/AxisLabelMode = ..., kotlin/Int = ..., dev.dtrentin.chart.model/LodMode = ...): dev.dtrentin.chart.model/ChartConfig // dev.dtrentin.chart.model/ChartConfig.copy|copy(kotlin.Float;dev.dtrentin.chart.model.YRange;dev.dtrentin.chart.model.T0;kotlin.Int?;dev.dtrentin.chart.model.ChartTheme;kotlin.Boolean;dev.dtrentin.chart.model.AxisLabelMode;dev.dtrentin.chart.model.AxisLabelMode;kotlin.Int;dev.dtrentin.chart.model.LodMode){}[0]
|
|
final fun equals(kotlin/Any?): kotlin/Boolean // dev.dtrentin.chart.model/ChartConfig.equals|equals(kotlin.Any?){}[0]
|
|
final fun hashCode(): kotlin/Int // dev.dtrentin.chart.model/ChartConfig.hashCode|hashCode(){}[0]
|
|
final fun toString(): kotlin/String // dev.dtrentin.chart.model/ChartConfig.toString|toString(){}[0]
|
|
}
|
|
|
|
final class dev.dtrentin.chart.model/ChartTheme { // dev.dtrentin.chart.model/ChartTheme|null[0]
|
|
constructor <init>(androidx.compose.ui.graphics/Color = ..., androidx.compose.ui.graphics/Color = ..., androidx.compose.ui.graphics/Color = ..., androidx.compose.ui.graphics/Color = ..., kotlin/Float = ...) // dev.dtrentin.chart.model/ChartTheme.<init>|<init>(androidx.compose.ui.graphics.Color;androidx.compose.ui.graphics.Color;androidx.compose.ui.graphics.Color;androidx.compose.ui.graphics.Color;kotlin.Float){}[0]
|
|
|
|
final val axisColor // dev.dtrentin.chart.model/ChartTheme.axisColor|{}axisColor[0]
|
|
final fun <get-axisColor>(): androidx.compose.ui.graphics/Color // dev.dtrentin.chart.model/ChartTheme.axisColor.<get-axisColor>|<get-axisColor>(){}[0]
|
|
final val backgroundColor // dev.dtrentin.chart.model/ChartTheme.backgroundColor|{}backgroundColor[0]
|
|
final fun <get-backgroundColor>(): androidx.compose.ui.graphics/Color // dev.dtrentin.chart.model/ChartTheme.backgroundColor.<get-backgroundColor>|<get-backgroundColor>(){}[0]
|
|
final val gridColor // dev.dtrentin.chart.model/ChartTheme.gridColor|{}gridColor[0]
|
|
final fun <get-gridColor>(): androidx.compose.ui.graphics/Color // dev.dtrentin.chart.model/ChartTheme.gridColor.<get-gridColor>|<get-gridColor>(){}[0]
|
|
final val labelColor // dev.dtrentin.chart.model/ChartTheme.labelColor|{}labelColor[0]
|
|
final fun <get-labelColor>(): androidx.compose.ui.graphics/Color // dev.dtrentin.chart.model/ChartTheme.labelColor.<get-labelColor>|<get-labelColor>(){}[0]
|
|
final val strokeWidth // dev.dtrentin.chart.model/ChartTheme.strokeWidth|{}strokeWidth[0]
|
|
final fun <get-strokeWidth>(): kotlin/Float // dev.dtrentin.chart.model/ChartTheme.strokeWidth.<get-strokeWidth>|<get-strokeWidth>(){}[0]
|
|
|
|
final fun component1(): androidx.compose.ui.graphics/Color // dev.dtrentin.chart.model/ChartTheme.component1|component1(){}[0]
|
|
final fun component2(): androidx.compose.ui.graphics/Color // dev.dtrentin.chart.model/ChartTheme.component2|component2(){}[0]
|
|
final fun component3(): androidx.compose.ui.graphics/Color // dev.dtrentin.chart.model/ChartTheme.component3|component3(){}[0]
|
|
final fun component4(): androidx.compose.ui.graphics/Color // dev.dtrentin.chart.model/ChartTheme.component4|component4(){}[0]
|
|
final fun component5(): kotlin/Float // dev.dtrentin.chart.model/ChartTheme.component5|component5(){}[0]
|
|
final fun copy(androidx.compose.ui.graphics/Color = ..., androidx.compose.ui.graphics/Color = ..., androidx.compose.ui.graphics/Color = ..., androidx.compose.ui.graphics/Color = ..., kotlin/Float = ...): dev.dtrentin.chart.model/ChartTheme // dev.dtrentin.chart.model/ChartTheme.copy|copy(androidx.compose.ui.graphics.Color;androidx.compose.ui.graphics.Color;androidx.compose.ui.graphics.Color;androidx.compose.ui.graphics.Color;kotlin.Float){}[0]
|
|
final fun equals(kotlin/Any?): kotlin/Boolean // dev.dtrentin.chart.model/ChartTheme.equals|equals(kotlin.Any?){}[0]
|
|
final fun hashCode(): kotlin/Int // dev.dtrentin.chart.model/ChartTheme.hashCode|hashCode(){}[0]
|
|
final fun toString(): kotlin/String // dev.dtrentin.chart.model/ChartTheme.toString|toString(){}[0]
|
|
}
|
|
|
|
final class dev.dtrentin.chart.model/SignalConfig { // dev.dtrentin.chart.model/SignalConfig|null[0]
|
|
constructor <init>(androidx.compose.ui.graphics/Color, kotlin/Float = ..., kotlin/Boolean = ...) // dev.dtrentin.chart.model/SignalConfig.<init>|<init>(androidx.compose.ui.graphics.Color;kotlin.Float;kotlin.Boolean){}[0]
|
|
|
|
final val color // dev.dtrentin.chart.model/SignalConfig.color|{}color[0]
|
|
final fun <get-color>(): androidx.compose.ui.graphics/Color // dev.dtrentin.chart.model/SignalConfig.color.<get-color>|<get-color>(){}[0]
|
|
final val strokeWidth // dev.dtrentin.chart.model/SignalConfig.strokeWidth|{}strokeWidth[0]
|
|
final fun <get-strokeWidth>(): kotlin/Float // dev.dtrentin.chart.model/SignalConfig.strokeWidth.<get-strokeWidth>|<get-strokeWidth>(){}[0]
|
|
final val visible // dev.dtrentin.chart.model/SignalConfig.visible|{}visible[0]
|
|
final fun <get-visible>(): kotlin/Boolean // dev.dtrentin.chart.model/SignalConfig.visible.<get-visible>|<get-visible>(){}[0]
|
|
|
|
final fun component1(): androidx.compose.ui.graphics/Color // dev.dtrentin.chart.model/SignalConfig.component1|component1(){}[0]
|
|
final fun component2(): kotlin/Float // dev.dtrentin.chart.model/SignalConfig.component2|component2(){}[0]
|
|
final fun component3(): kotlin/Boolean // dev.dtrentin.chart.model/SignalConfig.component3|component3(){}[0]
|
|
final fun copy(androidx.compose.ui.graphics/Color = ..., kotlin/Float = ..., kotlin/Boolean = ...): dev.dtrentin.chart.model/SignalConfig // dev.dtrentin.chart.model/SignalConfig.copy|copy(androidx.compose.ui.graphics.Color;kotlin.Float;kotlin.Boolean){}[0]
|
|
final fun equals(kotlin/Any?): kotlin/Boolean // dev.dtrentin.chart.model/SignalConfig.equals|equals(kotlin.Any?){}[0]
|
|
final fun hashCode(): kotlin/Int // dev.dtrentin.chart.model/SignalConfig.hashCode|hashCode(){}[0]
|
|
final fun toString(): kotlin/String // dev.dtrentin.chart.model/SignalConfig.toString|toString(){}[0]
|
|
}
|
|
|
|
final class dev.dtrentin.chart/RealtimeChartState { // dev.dtrentin.chart/RealtimeChartState|null[0]
|
|
constructor <init>(dev.dtrentin.chart.model/ChartConfig = ...) // dev.dtrentin.chart/RealtimeChartState.<init>|<init>(dev.dtrentin.chart.model.ChartConfig){}[0]
|
|
|
|
final val config // dev.dtrentin.chart/RealtimeChartState.config|{}config[0]
|
|
final fun <get-config>(): dev.dtrentin.chart.model/ChartConfig // dev.dtrentin.chart/RealtimeChartState.config.<get-config>|<get-config>(){}[0]
|
|
|
|
final fun addSignal(kotlin/String, dev.dtrentin.chart.model/SignalConfig) // dev.dtrentin.chart/RealtimeChartState.addSignal|addSignal(kotlin.String;dev.dtrentin.chart.model.SignalConfig){}[0]
|
|
final fun collectFrom(kotlin/String, kotlinx.coroutines.flow/Flow<kotlin/Float>, kotlinx.coroutines/CoroutineScope): kotlinx.coroutines/Job // dev.dtrentin.chart/RealtimeChartState.collectFrom|collectFrom(kotlin.String;kotlinx.coroutines.flow.Flow<kotlin.Float>;kotlinx.coroutines.CoroutineScope){}[0]
|
|
final fun collectFrom(kotlin/String, kotlinx.coroutines.flow/Flow<kotlin/Pair<kotlin/Long, kotlin/Float>>, kotlinx.coroutines/CoroutineScope): kotlinx.coroutines/Job // dev.dtrentin.chart/RealtimeChartState.collectFrom|collectFrom(kotlin.String;kotlinx.coroutines.flow.Flow<kotlin.Pair<kotlin.Long,kotlin.Float>>;kotlinx.coroutines.CoroutineScope){}[0]
|
|
final fun push(kotlin/String, kotlin/Long, kotlin/Float) // dev.dtrentin.chart/RealtimeChartState.push|push(kotlin.String;kotlin.Long;kotlin.Float){}[0]
|
|
final fun removeSignal(kotlin/String) // dev.dtrentin.chart/RealtimeChartState.removeSignal|removeSignal(kotlin.String){}[0]
|
|
}
|
|
|
|
sealed class dev.dtrentin.chart.model/T0 { // dev.dtrentin.chart.model/T0|null[0]
|
|
final class Fixed : dev.dtrentin.chart.model/T0 { // dev.dtrentin.chart.model/T0.Fixed|null[0]
|
|
constructor <init>(kotlin/Long) // dev.dtrentin.chart.model/T0.Fixed.<init>|<init>(kotlin.Long){}[0]
|
|
|
|
final val epochMs // dev.dtrentin.chart.model/T0.Fixed.epochMs|{}epochMs[0]
|
|
final fun <get-epochMs>(): kotlin/Long // dev.dtrentin.chart.model/T0.Fixed.epochMs.<get-epochMs>|<get-epochMs>(){}[0]
|
|
|
|
final fun component1(): kotlin/Long // dev.dtrentin.chart.model/T0.Fixed.component1|component1(){}[0]
|
|
final fun copy(kotlin/Long = ...): dev.dtrentin.chart.model/T0.Fixed // dev.dtrentin.chart.model/T0.Fixed.copy|copy(kotlin.Long){}[0]
|
|
final fun equals(kotlin/Any?): kotlin/Boolean // dev.dtrentin.chart.model/T0.Fixed.equals|equals(kotlin.Any?){}[0]
|
|
final fun hashCode(): kotlin/Int // dev.dtrentin.chart.model/T0.Fixed.hashCode|hashCode(){}[0]
|
|
final fun toString(): kotlin/String // dev.dtrentin.chart.model/T0.Fixed.toString|toString(){}[0]
|
|
}
|
|
|
|
final object FirstSample : dev.dtrentin.chart.model/T0 // dev.dtrentin.chart.model/T0.FirstSample|null[0]
|
|
}
|
|
|
|
sealed class dev.dtrentin.chart.model/YRange { // dev.dtrentin.chart.model/YRange|null[0]
|
|
final class Auto : dev.dtrentin.chart.model/YRange { // dev.dtrentin.chart.model/YRange.Auto|null[0]
|
|
constructor <init>(kotlin/Float = ...) // dev.dtrentin.chart.model/YRange.Auto.<init>|<init>(kotlin.Float){}[0]
|
|
|
|
final val paddingFraction // dev.dtrentin.chart.model/YRange.Auto.paddingFraction|{}paddingFraction[0]
|
|
final fun <get-paddingFraction>(): kotlin/Float // dev.dtrentin.chart.model/YRange.Auto.paddingFraction.<get-paddingFraction>|<get-paddingFraction>(){}[0]
|
|
|
|
final fun component1(): kotlin/Float // dev.dtrentin.chart.model/YRange.Auto.component1|component1(){}[0]
|
|
final fun copy(kotlin/Float = ...): dev.dtrentin.chart.model/YRange.Auto // dev.dtrentin.chart.model/YRange.Auto.copy|copy(kotlin.Float){}[0]
|
|
final fun equals(kotlin/Any?): kotlin/Boolean // dev.dtrentin.chart.model/YRange.Auto.equals|equals(kotlin.Any?){}[0]
|
|
final fun hashCode(): kotlin/Int // dev.dtrentin.chart.model/YRange.Auto.hashCode|hashCode(){}[0]
|
|
final fun toString(): kotlin/String // dev.dtrentin.chart.model/YRange.Auto.toString|toString(){}[0]
|
|
}
|
|
|
|
final class Fixed : dev.dtrentin.chart.model/YRange { // dev.dtrentin.chart.model/YRange.Fixed|null[0]
|
|
constructor <init>(kotlin/Float, kotlin/Float) // dev.dtrentin.chart.model/YRange.Fixed.<init>|<init>(kotlin.Float;kotlin.Float){}[0]
|
|
|
|
final val max // dev.dtrentin.chart.model/YRange.Fixed.max|{}max[0]
|
|
final fun <get-max>(): kotlin/Float // dev.dtrentin.chart.model/YRange.Fixed.max.<get-max>|<get-max>(){}[0]
|
|
final val min // dev.dtrentin.chart.model/YRange.Fixed.min|{}min[0]
|
|
final fun <get-min>(): kotlin/Float // dev.dtrentin.chart.model/YRange.Fixed.min.<get-min>|<get-min>(){}[0]
|
|
|
|
final fun component1(): kotlin/Float // dev.dtrentin.chart.model/YRange.Fixed.component1|component1(){}[0]
|
|
final fun component2(): kotlin/Float // dev.dtrentin.chart.model/YRange.Fixed.component2|component2(){}[0]
|
|
final fun copy(kotlin/Float = ..., kotlin/Float = ...): dev.dtrentin.chart.model/YRange.Fixed // dev.dtrentin.chart.model/YRange.Fixed.copy|copy(kotlin.Float;kotlin.Float){}[0]
|
|
final fun equals(kotlin/Any?): kotlin/Boolean // dev.dtrentin.chart.model/YRange.Fixed.equals|equals(kotlin.Any?){}[0]
|
|
final fun hashCode(): kotlin/Int // dev.dtrentin.chart.model/YRange.Fixed.hashCode|hashCode(){}[0]
|
|
final fun toString(): kotlin/String // dev.dtrentin.chart.model/YRange.Fixed.toString|toString(){}[0]
|
|
}
|
|
}
|
|
|
|
final val dev.dtrentin.chart.buffer/dev_dtrentin_chart_buffer_CircularBuffer$stableprop // dev.dtrentin.chart.buffer/dev_dtrentin_chart_buffer_CircularBuffer$stableprop|#static{}dev_dtrentin_chart_buffer_CircularBuffer$stableprop[0]
|
|
final val dev.dtrentin.chart.buffer/dev_dtrentin_chart_buffer_LodDecimator$stableprop // dev.dtrentin.chart.buffer/dev_dtrentin_chart_buffer_LodDecimator$stableprop|#static{}dev_dtrentin_chart_buffer_LodDecimator$stableprop[0]
|
|
final val dev.dtrentin.chart.buffer/dev_dtrentin_chart_buffer_TieredBuffer$stableprop // dev.dtrentin.chart.buffer/dev_dtrentin_chart_buffer_TieredBuffer$stableprop|#static{}dev_dtrentin_chart_buffer_TieredBuffer$stableprop[0]
|
|
final val dev.dtrentin.chart.model/dev_dtrentin_chart_model_ChartConfig$stableprop // dev.dtrentin.chart.model/dev_dtrentin_chart_model_ChartConfig$stableprop|#static{}dev_dtrentin_chart_model_ChartConfig$stableprop[0]
|
|
final val dev.dtrentin.chart.model/dev_dtrentin_chart_model_ChartTheme$stableprop // dev.dtrentin.chart.model/dev_dtrentin_chart_model_ChartTheme$stableprop|#static{}dev_dtrentin_chart_model_ChartTheme$stableprop[0]
|
|
final val dev.dtrentin.chart.model/dev_dtrentin_chart_model_SignalConfig$stableprop // dev.dtrentin.chart.model/dev_dtrentin_chart_model_SignalConfig$stableprop|#static{}dev_dtrentin_chart_model_SignalConfig$stableprop[0]
|
|
final val dev.dtrentin.chart.model/dev_dtrentin_chart_model_T0$stableprop // dev.dtrentin.chart.model/dev_dtrentin_chart_model_T0$stableprop|#static{}dev_dtrentin_chart_model_T0$stableprop[0]
|
|
final val dev.dtrentin.chart.model/dev_dtrentin_chart_model_T0_FirstSample$stableprop // dev.dtrentin.chart.model/dev_dtrentin_chart_model_T0_FirstSample$stableprop|#static{}dev_dtrentin_chart_model_T0_FirstSample$stableprop[0]
|
|
final val dev.dtrentin.chart.model/dev_dtrentin_chart_model_T0_Fixed$stableprop // dev.dtrentin.chart.model/dev_dtrentin_chart_model_T0_Fixed$stableprop|#static{}dev_dtrentin_chart_model_T0_Fixed$stableprop[0]
|
|
final val dev.dtrentin.chart.model/dev_dtrentin_chart_model_YRange$stableprop // dev.dtrentin.chart.model/dev_dtrentin_chart_model_YRange$stableprop|#static{}dev_dtrentin_chart_model_YRange$stableprop[0]
|
|
final val dev.dtrentin.chart.model/dev_dtrentin_chart_model_YRange_Auto$stableprop // dev.dtrentin.chart.model/dev_dtrentin_chart_model_YRange_Auto$stableprop|#static{}dev_dtrentin_chart_model_YRange_Auto$stableprop[0]
|
|
final val dev.dtrentin.chart.model/dev_dtrentin_chart_model_YRange_Fixed$stableprop // dev.dtrentin.chart.model/dev_dtrentin_chart_model_YRange_Fixed$stableprop|#static{}dev_dtrentin_chart_model_YRange_Fixed$stableprop[0]
|
|
final val dev.dtrentin.chart.render/dev_dtrentin_chart_render_AxisRenderer$stableprop // dev.dtrentin.chart.render/dev_dtrentin_chart_render_AxisRenderer$stableprop|#static{}dev_dtrentin_chart_render_AxisRenderer$stableprop[0]
|
|
final val dev.dtrentin.chart.render/dev_dtrentin_chart_render_NumberFormat$stableprop // dev.dtrentin.chart.render/dev_dtrentin_chart_render_NumberFormat$stableprop|#static{}dev_dtrentin_chart_render_NumberFormat$stableprop[0]
|
|
final val dev.dtrentin.chart.render/dev_dtrentin_chart_render_SignalRenderer$stableprop // dev.dtrentin.chart.render/dev_dtrentin_chart_render_SignalRenderer$stableprop|#static{}dev_dtrentin_chart_render_SignalRenderer$stableprop[0]
|
|
final val dev.dtrentin.chart/dev_dtrentin_chart_RealtimeChartState$stableprop // dev.dtrentin.chart/dev_dtrentin_chart_RealtimeChartState$stableprop|#static{}dev_dtrentin_chart_RealtimeChartState$stableprop[0]
|
|
final val dev.dtrentin.chart/dev_dtrentin_chart_SignalEntry$stableprop // dev.dtrentin.chart/dev_dtrentin_chart_SignalEntry$stableprop|#static{}dev_dtrentin_chart_SignalEntry$stableprop[0]
|
|
|
|
final fun dev.dtrentin.chart.buffer/dev_dtrentin_chart_buffer_CircularBuffer$stableprop_getter(): kotlin/Int // dev.dtrentin.chart.buffer/dev_dtrentin_chart_buffer_CircularBuffer$stableprop_getter|dev_dtrentin_chart_buffer_CircularBuffer$stableprop_getter(){}[0]
|
|
final fun dev.dtrentin.chart.buffer/dev_dtrentin_chart_buffer_LodDecimator$stableprop_getter(): kotlin/Int // dev.dtrentin.chart.buffer/dev_dtrentin_chart_buffer_LodDecimator$stableprop_getter|dev_dtrentin_chart_buffer_LodDecimator$stableprop_getter(){}[0]
|
|
final fun dev.dtrentin.chart.buffer/dev_dtrentin_chart_buffer_TieredBuffer$stableprop_getter(): kotlin/Int // dev.dtrentin.chart.buffer/dev_dtrentin_chart_buffer_TieredBuffer$stableprop_getter|dev_dtrentin_chart_buffer_TieredBuffer$stableprop_getter(){}[0]
|
|
final fun dev.dtrentin.chart.model/dev_dtrentin_chart_model_ChartConfig$stableprop_getter(): kotlin/Int // dev.dtrentin.chart.model/dev_dtrentin_chart_model_ChartConfig$stableprop_getter|dev_dtrentin_chart_model_ChartConfig$stableprop_getter(){}[0]
|
|
final fun dev.dtrentin.chart.model/dev_dtrentin_chart_model_ChartTheme$stableprop_getter(): kotlin/Int // dev.dtrentin.chart.model/dev_dtrentin_chart_model_ChartTheme$stableprop_getter|dev_dtrentin_chart_model_ChartTheme$stableprop_getter(){}[0]
|
|
final fun dev.dtrentin.chart.model/dev_dtrentin_chart_model_SignalConfig$stableprop_getter(): kotlin/Int // dev.dtrentin.chart.model/dev_dtrentin_chart_model_SignalConfig$stableprop_getter|dev_dtrentin_chart_model_SignalConfig$stableprop_getter(){}[0]
|
|
final fun dev.dtrentin.chart.model/dev_dtrentin_chart_model_T0$stableprop_getter(): kotlin/Int // dev.dtrentin.chart.model/dev_dtrentin_chart_model_T0$stableprop_getter|dev_dtrentin_chart_model_T0$stableprop_getter(){}[0]
|
|
final fun dev.dtrentin.chart.model/dev_dtrentin_chart_model_T0_FirstSample$stableprop_getter(): kotlin/Int // dev.dtrentin.chart.model/dev_dtrentin_chart_model_T0_FirstSample$stableprop_getter|dev_dtrentin_chart_model_T0_FirstSample$stableprop_getter(){}[0]
|
|
final fun dev.dtrentin.chart.model/dev_dtrentin_chart_model_T0_Fixed$stableprop_getter(): kotlin/Int // dev.dtrentin.chart.model/dev_dtrentin_chart_model_T0_Fixed$stableprop_getter|dev_dtrentin_chart_model_T0_Fixed$stableprop_getter(){}[0]
|
|
final fun dev.dtrentin.chart.model/dev_dtrentin_chart_model_YRange$stableprop_getter(): kotlin/Int // dev.dtrentin.chart.model/dev_dtrentin_chart_model_YRange$stableprop_getter|dev_dtrentin_chart_model_YRange$stableprop_getter(){}[0]
|
|
final fun dev.dtrentin.chart.model/dev_dtrentin_chart_model_YRange_Auto$stableprop_getter(): kotlin/Int // dev.dtrentin.chart.model/dev_dtrentin_chart_model_YRange_Auto$stableprop_getter|dev_dtrentin_chart_model_YRange_Auto$stableprop_getter(){}[0]
|
|
final fun dev.dtrentin.chart.model/dev_dtrentin_chart_model_YRange_Fixed$stableprop_getter(): kotlin/Int // dev.dtrentin.chart.model/dev_dtrentin_chart_model_YRange_Fixed$stableprop_getter|dev_dtrentin_chart_model_YRange_Fixed$stableprop_getter(){}[0]
|
|
final fun dev.dtrentin.chart.model/rememberMaterialChartTheme(androidx.compose.runtime/Composer?, kotlin/Int): dev.dtrentin.chart.model/ChartTheme // dev.dtrentin.chart.model/rememberMaterialChartTheme|rememberMaterialChartTheme(androidx.compose.runtime.Composer?;kotlin.Int){}[0]
|
|
final fun dev.dtrentin.chart.render/dev_dtrentin_chart_render_AxisRenderer$stableprop_getter(): kotlin/Int // dev.dtrentin.chart.render/dev_dtrentin_chart_render_AxisRenderer$stableprop_getter|dev_dtrentin_chart_render_AxisRenderer$stableprop_getter(){}[0]
|
|
final fun dev.dtrentin.chart.render/dev_dtrentin_chart_render_NumberFormat$stableprop_getter(): kotlin/Int // dev.dtrentin.chart.render/dev_dtrentin_chart_render_NumberFormat$stableprop_getter|dev_dtrentin_chart_render_NumberFormat$stableprop_getter(){}[0]
|
|
final fun dev.dtrentin.chart.render/dev_dtrentin_chart_render_SignalRenderer$stableprop_getter(): kotlin/Int // dev.dtrentin.chart.render/dev_dtrentin_chart_render_SignalRenderer$stableprop_getter|dev_dtrentin_chart_render_SignalRenderer$stableprop_getter(){}[0]
|
|
final fun dev.dtrentin.chart/RealtimeChart(dev.dtrentin.chart/RealtimeChartState, androidx.compose.ui/Modifier?, kotlin/Float, dev.dtrentin.chart.model/ChartTheme?, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int) // dev.dtrentin.chart/RealtimeChart|RealtimeChart(dev.dtrentin.chart.RealtimeChartState;androidx.compose.ui.Modifier?;kotlin.Float;dev.dtrentin.chart.model.ChartTheme?;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){}[0]
|
|
final fun dev.dtrentin.chart/dev_dtrentin_chart_RealtimeChartState$stableprop_getter(): kotlin/Int // dev.dtrentin.chart/dev_dtrentin_chart_RealtimeChartState$stableprop_getter|dev_dtrentin_chart_RealtimeChartState$stableprop_getter(){}[0]
|
|
final fun dev.dtrentin.chart/dev_dtrentin_chart_SignalEntry$stableprop_getter(): kotlin/Int // dev.dtrentin.chart/dev_dtrentin_chart_SignalEntry$stableprop_getter|dev_dtrentin_chart_SignalEntry$stableprop_getter(){}[0]
|