Coverage Summary for Class: EditCueState (com.vsevolodganin.clicktrack.edit)

Class Method, % Branch, % Line, % Instruction, %
EditCueState 0% (0/3) 0% (0/11) 0% (0/16) 1.3% (4/307)
EditCueState$Companion 0% (0/1) 0% (0/1) 0% (0/2)
EditCueState$Error 0% (0/1) 0% (0/1) 0% (0/12)
EditCueState$WhenMappings
Total 0% (0/5) 0% (0/11) 0% (0/18) 1.2% (4/321)


 package com.vsevolodganin.clicktrack.edit
 
 import com.benasher44.uuid.uuid4
 import com.vsevolodganin.clicktrack.model.BeatsPerMinuteOffset
 import com.vsevolodganin.clicktrack.model.ClickTrackId
 import com.vsevolodganin.clicktrack.model.CueDuration
 import com.vsevolodganin.clicktrack.model.NotePattern
 import com.vsevolodganin.clicktrack.model.TimeSignature
 import kotlinx.serialization.Serializable
 
 @Serializable
 data class EditClickTrackState(
     val id: ClickTrackId.Database,
     val name: String,
     val loop: Boolean,
     val tempoOffset: BeatsPerMinuteOffset,
     val cues: List<EditCueState>,
     val showForwardButton: Boolean,
 )
 
 @Serializable
 data class EditCueState(
     val id: String = uuid4().toString(),
     val displayPosition: String,
     val name: String,
     val bpm: Int,
     val timeSignature: TimeSignature,
     val activeDurationType: CueDuration.Type,
     val beats: CueDuration.Beats,
     val measures: CueDuration.Measures,
     val time: CueDuration.Time,
     val pattern: NotePattern,
     val errors: Set<Error>,
 ) {
     enum class Error {
         BPM,
     }
 
     val duration: CueDuration
         get() = when (activeDurationType) {
             CueDuration.Type.BEATS -> beats
             CueDuration.Type.MEASURES -> measures
             CueDuration.Type.TIME -> time
         }
 }