
org.http4k.lens.delegatedProperties.kt Maven / Gradle / Ivy
package org.http4k.lens
import kotlin.properties.ReadOnlyProperty
typealias Prop = ReadOnlyProperty
interface DelegatedPropertyLensSpec {
fun required(): Prop
fun optional(): Prop
fun defaulted(default: OUT): Prop
}
@JvmName("named")
fun > L.of() =
object : DelegatedPropertyLensSpec, OUT, Lens> {
override fun required() = Prop { _, p -> [email protected](p.name) }
override fun optional() = Prop { _, p -> [email protected](p.name) }
override fun defaulted(default: OUT) = Prop { _, property -> [email protected](property.name, default) }
}
@JvmName("namedList")
fun >> L.of() =
object : DelegatedPropertyLensSpec>, List, Lens?>> {
override fun required() = Prop { _, p -> [email protected](p.name) }
override fun optional() = Prop { _, p -> [email protected](p.name) }
override fun defaulted(default: List) = Prop { _, p -> [email protected](p.name, default) }
}
@JvmName("namedBiDi")
fun > L.of() =
object : DelegatedPropertyLensSpec, OUT, BiDiLens> {
override fun required() = Prop { _, p -> [email protected](p.name) }
override fun optional() = Prop { _, p -> [email protected](p.name) }
override fun defaulted(default: OUT) = Prop { _, p -> [email protected](p.name, default) }
}
@JvmName("namedBiDiList")
fun >> L.of() =
object : DelegatedPropertyLensSpec>, List, BiDiLens?>> {
override fun required() = Prop { _, p -> [email protected](p.name) }
override fun optional() = Prop { _, p -> [email protected](p.name) }
override fun defaulted(default: List) = Prop { _, p -> [email protected](p.name, default) }
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy