次のように定義されたディレクティブがあります
def allowedRoles(roles: UserRole*)(implicit login: Login): Directive0 = ???
しかし、パラメータを明示的に渡さなくても使用できるようには見えませんlogin
def myRoutes(implicit req: HttpRequest, login: Login) = {
path("example" / "path") {
get {
allowedRoles(Administrator) { // ← fails
handleGet
}
}
}
}
これをコンパイルしようとすると、型の不一致で失敗します:
[error] found : akka.http.scaladsl.server.Route
[error] (which expands to) akka.http.scaladsl.server.RequestContext => scala.concurrent.Future[akka.http.scaladsl.server.RouteResult]
[error] required: com.example.Login
[error] allowedRoles(Administrator) { handleGet } }
マークされた行を変更するallowedRoles(Administrator)(login)
と機能しますが、これを行う必要はないようです。何が欠けていますか?