Skip to content

ghosalmartin/AnySubscripts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

24 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

AnySubscripts

Counterpart to https://github.com/screensailor/OptionalSubscripts/

Unit Tests

All equality expressions below return true:

var o: Any? by any()

o = null
o = emptyList<Any?>()
o = emptyMap<Any?, Any?>()

o = "πŸ‘‹"
assertEquals("πŸ‘‹", o())

o["one"] = 1
assertEquals(1, o["one"])

o["one", 2] = 2
assertEquals(2, o["one", 2])

o["one", 3] = null
assertEquals(listOf(null, null, 2), o["one"])

o["one", 2] = mapOf("three" to 4)
assertEquals(4, o["one", 2, "three"])

assertEquals(4, o["one", 2, "three"])

o["one", 2] = null
assertNull(o["one"])

... including an Store actor with routed streams, batch updates and atomic transactions:

runBlocking {
    val store = Store()
    val route = !listOf("way", "to", "my", "heart")

    store.set(route, "?")

    store.stream(route)
        .collectLatest {
            when (it) {
                "?" -> store.set(route, "❀️")
                "❀️" -> store.set(route, "πŸ’›")
                "πŸ’›" -> store.set(route, "πŸ’š")
                "πŸ’š" -> cancel("Never Be Game Over!")
                else -> throw IllegalArgumentException("What else is in there? $it")
            }
        }
    }
}

About

Counter part to https://github.com/screensailor/OptionalSubscripts/

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages