package com.swmansion.rnscreens.gamma.stack.header.toolbar internal sealed interface StackHeaderToolbarFieldUpdate { object Reset : StackHeaderToolbarFieldUpdate data class Set( val value: T, ) : StackHeaderToolbarFieldUpdate companion object { fun from(value: T?): StackHeaderToolbarFieldUpdate = if (value != null) { Set(value) } else { Reset } } } internal fun StackHeaderToolbarFieldUpdate.valueOrNull(): T? = when (this) { StackHeaderToolbarFieldUpdate.Reset -> null is StackHeaderToolbarFieldUpdate.Set -> value }