zer*_*ing 3 scala scala-cats http4s refined
我正在使用库https://github.com/fthomas/refined并希望转换java.util.UUID
为精炼的Uuid
.
如何转为java.util.UUID
精炼Uuid
?
更新
我有以下 http 路由:
private val httpRoutes: HttpRoutes[F] = HttpRoutes.of[F] {
case GET -> Root / UUIDVar(id) =>
program.read(id)
Run Code Online (Sandbox Code Playgroud)
读取函数定义如下:
def read(id: Uuid): F[User] =
query
.read(id)
.flatMap {
case Some(user) =>
Applicative[F].pure(user)
case None =>
ApplicativeError[F, UserError].raiseError[User](UserNotRegistered)
}
Run Code Online (Sandbox Code Playgroud)
编译器抱怨:
type mismatch;
[error] found : java.util.UUID
[error] required: eu.timepit.refined.string.Uuid
[error] program.read(id)
[error]
^
Run Code Online (Sandbox Code Playgroud)
这里转化java.util.UUID
为eu.timepit.refined.api.Refined[String, eu.timepit.refined.string.Uuid]
import java.util.UUID
import eu.timepit.refined.string.Uuid
import eu.timepit.refined.api.Refined
val uuid: UUID = UUID.fromString("deea44c7-a180-4898-9527-58db0ed34683")
val uuid1: String Refined Uuid = Refined.unsafeApply[String, Uuid](uuid.toString)
Run Code Online (Sandbox Code Playgroud)