Logo

0x5a.live

for different kinds of informations and explorations.

GitHub - poetix/klenses: Lenses for Kotlin

Lenses for Kotlin. Contribute to poetix/klenses development by creating an account on GitHub.

Visit SiteGitHub - poetix/klenses: Lenses for Kotlin

GitHub - poetix/klenses: Lenses for Kotlin

Lenses for Kotlin. Contribute to poetix/klenses development by creating an account on GitHub.

Powered by 0x5a.live ๐Ÿ’—

klenses

Lenses for Kotlin.

Maven Central Build Status

Lenses are property references with some extra abilities: they can also be used to create a copy of an object with the property set to a different value, and they compose to form pointers into nested objects.

data class Inner(val value: String)
data class Outer(val outerValue: String, val inner: Inner?)

val foo = Outer("foo", null)

val outerValueLens = +Outer::outerValue
val innerLens = Outer::inner orElse Inner("xyzzy")
val innerValueLens = innerLens + Inner::value 

assertEquals("foo", outerValueLens(foo))
assertEquals(Outer("quux", null), outerValueLens(foo, "quux"))
assertEquals(Inner("xyzzy"), innerLens(foo))
assertEquals(Outer("foo", Inner("frobnitz")), innerValueLens(foo, "frobnitz"))
assertEquals(Outer("foo", Inner("XYZZY")), innerValueLens(foo) { toUpperCase() })

Kotlin Resources

are all listed below.

Resources

listed to get explored on!!

Made with โค๏ธ

to provide different kinds of informations and resources.