Skip to content

Instantly share code, notes, and snippets.

View AlexeySoshin's full-sized avatar

Alexey Soshin AlexeySoshin

View GitHub Profile
import com.google.protobuf.gradle.*
...
protobuf {
...
generatedFilesBaseDir = "$buildDir/generated-sources"
...
dependencies {
protobuf(files(project.properties["protoDir"].toString()))
}
generateProtoTasks {
fun Tree<Int>.sum(): Long = when (this) {
Empty -> 0
is Node -> value + left.sum() + right.sum()
}
sealed class Tree<out T>
data class Node<T>(
val value: T,
val left: Tree<T> = Empty,
val right: Tree<T> = Empty
) : Tree<T>()
object Empty : Tree<Nothing>() {
override fun toString() = "Empty"
}
val tree = Node(
42,
Empty,
Node(62)
)
println(tree)
sealed class Tree<out T>
sealed class Tree<out T>
object Empty : Tree<Nothing>() {
override fun toString() = "Empty"
}
data class Node<T>(
val value: T,
val left: Tree<T> = Empty,
val right: Tree<T> = Empty
public SQLClient getConnection(Handler<AsyncResult<SQLConnection>> handler) {
Context ctx = vertx.getOrCreateContext();
getConnection(ctx, ar -> ctx.runOnContext(v -> handler.handle(ar)));
return this;
}
public void execute(Connection conn,
TaskQueue statementsQueue,
Handler<AsyncResult<T>> resultHandler) {
ctx.executeBlocking(future -> handle(conn, future),
statementsQueue, resultHandler);
}