.libv1> builtins.merge
test1: Nat -> Nat
test1 n = n + n
| //> using dep com.softwaremill.ox::core:0.0.7 | |
| import ox.* | |
| import ox.channels.* | |
| import scala.annotation.tailrec | |
| scoped { | |
| // fast producer | |
| val c = Channel[Int]() | |
| fork { |
.libv1> builtins.merge
test1: Nat -> Nat
test1 n = n + n
| package sttp.tapir.examples | |
| import cats.effect.{ExitCode, IO, IOApp} | |
| import org.http4s.HttpRoutes | |
| import org.http4s.blaze.server.BlazeServerBuilder | |
| import org.http4s.server.Router | |
| import sttp.model.{Part, StatusCode} | |
| import sttp.model.headers.WWWAuthenticateChallenge | |
| import sttp.tapir._ | |
| import sttp.tapir.generic.auto._ |
| package sttp.tapir.examples | |
| import akka.actor.ActorSystem | |
| import akka.http.scaladsl.Http | |
| import akka.http.scaladsl.server.Route | |
| import scala.concurrent.{Await, Future} | |
| import scala.concurrent.duration._ | |
| import scala.io.StdIn |
| // TestMacro.scala | |
| import scala.quoted.* | |
| object TestMacro { | |
| inline def name[E](e: E): String = ${ nameImpl[E]('e) } | |
| def nameImpl[E: Type](e: Expr[E])(using Quotes): Expr[String] = { | |
| import quotes.reflect.* |
| object UsingIO: | |
| trait Connection | |
| trait User | |
| case class IO[-R, +A](): | |
| def *>[R1 <: R, B](that: => IO[R1, B]): IO[R1, B] = IO() | |
| def foo(): IO[Connection, Unit] = IO() | |
| def bar(): IO[User, Unit] = IO() |
| opaque type NonEmptyString = String | |
| object NonEmptyString: | |
| def apply(s: String): Option[NonEmptyString] = | |
| if s.isEmpty then None else Some(s) |
| "pool-48-thread-5" #225 prio=5 os_prio=31 cpu=172535.04ms elapsed=180.55s tid=0x00007fd765e3d800 nid=0xdd0b runnable [0x0000700019eb4000] | |
| java.lang.Thread.State: RUNNABLE | |
| at dotty.tools.dotc.core.Types$Type.classSymbol(Types.scala:488) | |
| at dotty.tools.dotc.transform.patmat.SpaceEngine.canDecompose(Space.scala:649) | |
| at dotty.tools.dotc.transform.patmat.SpaceLogic.simplify(Space.scala:147) | |
| at dotty.tools.dotc.transform.patmat.SpaceLogic.simplify$(Space.scala:78) | |
| at dotty.tools.dotc.transform.patmat.SpaceEngine.simplify(Space.scala:323) | |
| at dotty.tools.dotc.transform.patmat.SpaceLogic.isSubspace(Space.scala:176) | |
| at dotty.tools.dotc.transform.patmat.SpaceLogic.isSubspace$(Space.scala:78) | |
| at dotty.tools.dotc.transform.patmat.SpaceEngine.isSubspace(Space.scala:323) |
| package sttp.tapir.examples | |
| import cats.effect._ | |
| import cats.syntax.all._ | |
| import org.http4s.HttpRoutes | |
| import org.http4s.server.Router | |
| import org.http4s.server.blaze.BlazeServerBuilder | |
| import org.http4s.syntax.kleisli._ | |
| import sttp.client3._ | |
| import sttp.tapir._ |
| trait TapirHandler extends RequestStreamHandler { | |
| def endpoints: List[ServerEndpoint[_, _, _, Any, Identity]] | |
| override def handleRequest(input: InputStream, output: OutputStream, | |
| context: Context): Unit = { | |
| val json = new String(input.readAllBytes(), UTF_8) | |
| val writer = new BufferedWriter(new OutputStreamWriter(output, UTF_8)) | |
| writer.write(handleRequest(json)) | |
| writer.flush() | |
| } |