Clean up preference extensions/items a bit

This commit is contained in:
arkon
2023-07-19 21:57:22 -04:00
parent 7a4680603d
commit cf14831fbe
24 changed files with 101 additions and 219 deletions

View File

@ -24,3 +24,16 @@ interface Preference<T> {
}
inline fun <reified T, R : T> Preference<T>.getAndSet(crossinline block: (T) -> R) = set(block(get()))
operator fun <T> Preference<Set<T>>.plusAssign(item: T) {
set(get() + item)
}
operator fun <T> Preference<Set<T>>.minusAssign(item: T) {
set(get() - item)
}
fun Preference<Boolean>.toggle(): Boolean {
set(!get())
return get()
}