trathschlag
02/11/2020, 12:33 PM@NamedParameters
typealias UpdateUserByToken = (userToken: String, update: (User) -> User) -> Unit
to
interface UpdateUserByToken {
operator fun invoke(userToken: String, update: (User) -> User): Unit
companion object {
operator fun invoke(impl: (userToken: String, update: (User) -> User) -> Unit) = object: UpdateUserByToken {
override fun invoke(userToken: String, update: (User) -> User) = impl(userToken, update)
}
}
}
So you can stuff like this:
val updateUserByToken = UpdateUserByToken { userToken, update ->
// implement
}
[...]
updateUserByToken(userToken = "1234") {
user.copy(email = "<mailto:foo@bar.com|foo@bar.com>")
}
Is this possibly with arrow-meta? How could I distribute this plugin to my colleagues? Thanks in advance!shikasd
02/11/2020, 12:39 PMtrathschlag
02/11/2020, 1:11 PMupdateUserByToken(userToken = "1234") {
user.copy(email = "<mailto:foo@bar.com|foo@bar.com>")
}
does not work currentlytrathschlag
02/11/2020, 1:13 PMtrathschlag
02/11/2020, 1:18 PMshikasd
02/11/2020, 2:04 PM