Created
November 26, 2016 15:59
-
-
Save Rulexec/9ceb5f7e1b266715e380cc00fb939733 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.util.concurrent.atomic.AtomicInteger | |
interface IController { | |
fun handle(request: AtomicInteger) | |
} | |
fun createController(handler: (request: AtomicInteger) -> Unit): IController { | |
return object : IController { | |
override fun handle(request: AtomicInteger) = handler(request) | |
} | |
} | |
private val createControllerF = { handler: (request: AtomicInteger) -> Unit -> | |
object : IController { | |
override fun handle(request: AtomicInteger) = handler(request) | |
} | |
} | |
infix fun (((AtomicInteger) -> Unit) -> IController).respondsJSON( | |
handler: (AtomicInteger) -> Unit): IController | |
{ | |
return createController { request -> | |
request.incrementAndGet() | |
this(handler) | |
} | |
} | |
fun example() { | |
createControllerF respondsJSON { request -> /**/ } | |
createControllerF respondsJSON respondsJSON | |
createController respondsJSON | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment