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