Coverage Summary for Class: LastSyncOutcome (com.georgeci.moneysurfer.sync.api)

Class Method, % Branch, % Line, % Instruction, %
LastSyncOutcome$Cancelled 100% (1/1) 100% (1/1) 100% (7/7)
LastSyncOutcome$Failed 100% (1/1) 100% (1/1) 100% (12/12)
LastSyncOutcome$None 100% (1/1) 100% (1/1) 100% (2/2)
LastSyncOutcome$Success 100% (1/1) 100% (1/1) 100% (12/12)
Total 100% (4/4) 100% (4/4) 100% (33/33)


 package com.georgeci.moneysurfer.sync.api
 
 import kotlin.time.Instant
 
 /**
  * Persistent "last sync outcome" — for UI badges like "last synced N min ago".
  * Separate from [SyncState] (live activity).
  * See SyncCoordinatorFAQ.md №10.
  */
 sealed interface LastSyncOutcome {
     data object None : LastSyncOutcome
     data class Success(val summary: SyncSummary, val at: Instant) : LastSyncOutcome
     data class Failed(val error: SyncError, val at: Instant) : LastSyncOutcome
     data class Cancelled(val at: Instant) : LastSyncOutcome
 }