p

typedapi

server

package server

Linear Supertypes
MergeToEndpointLowPrio, PrecompileEndpointLowPrio, ServeToListLowPrio, FoldResultEvidenceLowPrio, RouteExtractorMediumPrio, RouteExtractorLowPrio, ValueExtractorInstances, FunctionApplyLowPrio, ApiTransformer, TypeLevelFoldLeftListLowPrio, TypeLevelFoldLeftLowPrio, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. server
  2. MergeToEndpointLowPrio
  3. PrecompileEndpointLowPrio
  4. ServeToListLowPrio
  5. FoldResultEvidenceLowPrio
  6. RouteExtractorMediumPrio
  7. RouteExtractorLowPrio
  8. ValueExtractorInstances
  9. FunctionApplyLowPrio
  10. ApiTransformer
  11. TypeLevelFoldLeftListLowPrio
  12. TypeLevelFoldLeftLowPrio
  13. AnyRef
  14. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. final case class BadRouteRequest(msg: String) extends ExtractionError with Product with Serializable
  2. final case class BodyType[Bd]() extends Product with Serializable
  3. abstract class Endpoint[El <: HList, In <: HList, ROut, CIn <: HList, F[_], Out] extends AnyRef

    Container storing the extractor and function of an endpoint.

  4. final class EndpointCompositionDefinition[H <: HList, Comp[_[_]] <: HList, Pre[_[_]] <: HList] extends AnyRef
  5. trait EndpointConstructor[F[_], Fun, El <: HList, In <: HList, ROut, CIn <: HList, Out] extends AnyRef

    Fuses RouteExtractor, FunApply and endpoint function fun into an Endpoint.

  6. final class EndpointDefinition[El <: HList, In <: HList, ROut, CIn <: HList, Fun[_[_]], Out] extends AnyRef
  7. sealed trait EndpointExecutor[El <: HList, In <: HList, ROut, CIn <: HList, F[_], FOut] extends AnyRef
    Annotations
    @implicitNotFound( ... )
  8. final case class EndpointRequest(method: String, uri: List[String], queries: Map[String, List[String]], headers: Map[String, String]) extends Product with Serializable

    Request representation which every server implementation has to provide.

  9. sealed trait ExtractionError extends AnyRef
  10. trait FunctionApply[In <: HList, Out] extends AnyRef
    Annotations
    @implicitNotFound( ... )
  11. trait FunctionApplyLowPrio extends AnyRef
  12. final class Function0[Out] extends FunctionApply[HNil, Out]
    Definition Classes
    FunctionApplyLowPrio
  13. final class Function1[KA, A, Out] extends FunctionApply[::[FieldType[KA, A], HNil], Out]
    Definition Classes
    FunctionApplyLowPrio
  14. final class Function2[KA, A, KB, B, Out] extends FunctionApply[::[FieldType[KA, A], ::[FieldType[KB, B], HNil]], Out]
    Definition Classes
    FunctionApplyLowPrio
  15. final class Function3[KA, A, KB, B, KC, C, Out] extends FunctionApply[::[FieldType[KA, A], ::[FieldType[KB, B], ::[FieldType[KC, C], HNil]]], Out]
    Definition Classes
    FunctionApplyLowPrio
  16. final class Function4[KA, A, KB, B, KC, C, KD, D, Out] extends FunctionApply[::[FieldType[KA, A], ::[FieldType[KB, B], ::[FieldType[KC, C], ::[FieldType[KD, D], HNil]]]], Out]
    Definition Classes
    FunctionApplyLowPrio
  17. final class Function5[KA, A, KB, B, KC, C, KD, D, KE, E, Out] extends FunctionApply[::[FieldType[KA, A], ::[FieldType[KB, B], ::[FieldType[KC, C], ::[FieldType[KD, D], ::[FieldType[KE, E], HNil]]]]], Out]
    Definition Classes
    FunctionApplyLowPrio
  18. final class Function6[KA, A, KB, B, KC, C, KD, D, KE, E, KF, F, Out] extends FunctionApply[::[FieldType[KA, A], ::[FieldType[KB, B], ::[FieldType[KC, C], ::[FieldType[KD, D], ::[FieldType[KA, A], ::[FieldType[KF, F], HNil]]]]]], Out]
    Definition Classes
    FunctionApplyLowPrio
  19. final class Function7[KA, A, KB, B, KC, C, KD, D, KE, E, KF, F, KG, G, Out] extends FunctionApply[::[FieldType[KA, A], ::[FieldType[KB, B], ::[FieldType[KC, C], ::[FieldType[KD, D], ::[FieldType[KA, A], ::[FieldType[KF, F], ::[FieldType[KG, G], HNil]]]]]]], Out]
    Definition Classes
    FunctionApplyLowPrio
  20. final class Function8[KA, A, KB, B, KC, C, KD, D, KE, E, KF, F, KG, G, KH, H, Out] extends FunctionApply[::[FieldType[KA, A], ::[FieldType[KB, B], ::[FieldType[KC, C], ::[FieldType[KD, D], ::[FieldType[KA, A], ::[FieldType[KF, F], ::[FieldType[KG, G], ::[FieldType[KH, H], HNil]]]]]]]], Out]
    Definition Classes
    FunctionApplyLowPrio
  21. final case class FunctionComposition[Comp <: HList](funs: Comp) extends Product with Serializable
  22. sealed trait MergeToEndpoint[F[_], Pre <: HList, Fun <: HList] extends AnyRef
    Annotations
    @implicitNotFound( ... )
  23. trait MergeToEndpointLowPrio extends AnyRef
  24. trait MountEndpoints[S, Req, Resp] extends AnyRef
  25. trait NoReqBodyExecutor[El <: HList, In <: HList, CIn <: HList, F[_], FOut] extends EndpointExecutor[El, In, CIn, CIn, F, FOut]
  26. sealed trait PrecompileEndpoint[H <: HList] extends AnyRef

    Compiles RouteExtractor and FunApply for every API endpoint and generates expected list of endpoint functions.

    Compiles RouteExtractor and FunApply for every API endpoint and generates expected list of endpoint functions.

    Annotations
    @implicitNotFound( ... )
  27. trait PrecompileEndpointLowPrio extends AnyRef
  28. final class Precompiled[El <: HList, In <: HList, CIn <: HList, Fun[_[_]], Out0, ROut, CompT[_[_]] <: HList, OutT[_[_]] <: HList, T <: HList] extends PrecompileEndpoint[::[(El, In, Out0), T]]
    Definition Classes
    PrecompileEndpointLowPrio
  29. trait ReqBodyExecutor[El <: HList, In <: HList, Bd, ROut <: HList, POut <: HList, CIn <: HList, F[_], FOut] extends EndpointExecutor[El, In, (BodyType[Bd], ROut), CIn, F, FOut]
  30. trait RouteExtractor[El <: HList, In <: HList, EIn <: HList] extends AnyRef

    Build a function which extracts inputs from a given requests based on the API.

    Build a function which extracts inputs from a given requests based on the API.

    • if a request path does not fit the API definition RouteNotFound is returned
    • if a query, header, body, etc is missing BadRouteRequest is returned
    Annotations
    @implicitNotFound( ... )
  31. trait RouteExtractorLowPrio extends AnyRef
  32. trait RouteExtractorMediumPrio extends RouteExtractorLowPrio
  33. trait Serve[Req, Resp] extends AnyRef

    Reduces an Endpoint and its EndpointExecutor to a simple Request => Response function.

  34. sealed trait ServeToList[H <: HList, Req, Resp] extends AnyRef
    Annotations
    @implicitNotFound( ... )
  35. trait ServeToListLowPrio extends AnyRef
  36. final case class ServerManager[S](server: S, host: String, port: Int) extends Product with Serializable
  37. sealed trait ValueExtractor[A] extends (String) ⇒ Option[A]
  38. trait ValueExtractorInstances extends AnyRef

Value Members

  1. implicit val booleanExtractor: ValueExtractor[Boolean] { val typeDesc: String }
    Definition Classes
    ValueExtractorInstances
  2. implicit val byteExtractor: ValueExtractor[Byte] { val typeDesc: String }
    Definition Classes
    ValueExtractorInstances
  3. implicit def deleteExtractor[EIn <: HList]: RouteExtractor[::[DeleteCall, HNil], HNil, EIn] { type Out = EIn }
    Definition Classes
    RouteExtractorMediumPrio
  4. implicit def deleteTransformer[A]: Aux[DeleteElement[A], (HNil, HNil), (::[DeleteCall, HNil], HNil, A)]
    Definition Classes
    ApiTransformer
  5. implicit val doubleExtractor: ValueExtractor[Double] { val typeDesc: String }
    Definition Classes
    ValueExtractorInstances
  6. implicit def evidence[El0 <: HList, In0 <: HList, Out0]: Aux[(El0, In0, Out0), El0, In0, Out0]
    Definition Classes
    FoldResultEvidenceLowPrio
  7. def extract[A](f: (String) ⇒ A, _typeDesc: String): ValueExtractor[A] { val typeDesc: String }
    Definition Classes
    ValueExtractorInstances
  8. implicit val floatExtractor: ValueExtractor[Float] { val typeDesc: String }
    Definition Classes
    ValueExtractorInstances
  9. implicit def foldCase[H, T <: HList, Agg, FtOut, FOut](implicit f: Aux[H, Agg, FtOut], next: Lazy[Aux[T, FtOut, FOut]]): Aux[::[H, T], Agg, FOut]
    Definition Classes
    TypeLevelFoldLeftLowPrio
  10. implicit def folderLeftList[H <: HList, Agg, T <: HList](implicit folder0: TypeLevelFoldLeft[H, Agg], list: TypeLevelFoldLeftList[T]): TypeLevelFoldLeftList[::[H, T]] { type Out = folder0.Out :: list.Out }
    Definition Classes
    TypeLevelFoldLeftListLowPrio
  11. implicit def funApply0[Out]: Function0[Out]
    Definition Classes
    FunctionApplyLowPrio
  12. implicit def funApply1[KA, A, Out]: Function1[KA, A, Out]
    Definition Classes
    FunctionApplyLowPrio
  13. implicit def funApply2[KA, A, KB, B, Out]: Function2[KA, A, KB, B, Out]
    Definition Classes
    FunctionApplyLowPrio
  14. implicit def funApply3[KA, A, KB, B, KC, C, Out]: Function3[KA, A, KB, B, KC, C, Out]
    Definition Classes
    FunctionApplyLowPrio
  15. implicit def funApply4[KA, A, KB, B, KC, C, KD, D, Out]: Function4[KA, A, KB, B, KC, C, KD, D, Out]
    Definition Classes
    FunctionApplyLowPrio
  16. implicit def funApply5[KA, A, KB, B, KC, C, KD, D, KE, E, Out]: Function5[KA, A, KB, B, KC, C, KD, D, KE, E, Out]
    Definition Classes
    FunctionApplyLowPrio
  17. implicit def funApply6[KA, A, KB, B, KC, C, KD, D, KE, E, KF, F, Out]: Function6[KA, A, KB, B, KC, C, KD, D, KE, E, KF, F, Out]
    Definition Classes
    FunctionApplyLowPrio
  18. implicit def funApply7[KA, A, KB, B, KC, C, KD, D, KE, E, KF, F, KG, G, Out]: Function7[KA, A, KB, B, KC, C, KD, D, KE, E, KF, F, KG, G, Out]
    Definition Classes
    FunctionApplyLowPrio
  19. implicit def funApply8[KA, A, KB, B, KC, C, KD, D, KE, E, KF, F, KG, G, KH, H, Out]: Function8[KA, A, KB, B, KC, C, KD, D, KE, E, KF, F, KG, G, KH, H, Out]
    Definition Classes
    FunctionApplyLowPrio
  20. implicit def getExtractor[EIn <: HList, REIn <: HList](implicit rev: Aux[EIn, REIn]): RouteExtractor[::[GetCall, HNil], HNil, EIn] { type Out = REIn }
    Definition Classes
    RouteExtractorMediumPrio
  21. implicit def getTransformer[A]: Aux[GetElement[A], (HNil, HNil), (::[GetCall, HNil], HNil, A)]
    Definition Classes
    ApiTransformer
  22. implicit def headerElementTransformer[S <: Symbol, A, El <: HList, In <: HList, Out]: Aux[HeaderParam[S, A], (El, In, Out), (::[HeaderInput, El], ::[FieldType[S, A], In], Out)]
    Definition Classes
    ApiTransformer
  23. implicit def headerExtractor[El <: HList, K <: Symbol, A, In <: HList, EIn <: HList](implicit wit: Aux[K], value: ValueExtractor[A], next: RouteExtractor[El, In, ::[A, EIn]]): RouteExtractor[::[HeaderInput, El], ::[FieldType[K, A], In], EIn] { type Out = next.Out }
    Definition Classes
    RouteExtractorMediumPrio
  24. implicit def headerOptExtractor[El <: HList, K <: Symbol, A, In <: HList, EIn <: HList](implicit wit: Aux[K], value: ValueExtractor[A], next: RouteExtractor[El, In, ::[Option[A], EIn]]): RouteExtractor[::[HeaderInput, El], ::[FieldType[K, Option[A]], In], EIn] { type Out = next.Out }
    Definition Classes
    RouteExtractorMediumPrio
  25. implicit def hnilCase[Agg]: Aux[HNil, Agg, Agg]
    Definition Classes
    TypeLevelFoldLeftLowPrio
  26. implicit def hnilMergeCase[F[_]]: MergeToEndpoint[F, HNil, HNil] { type Out = shapeless.HNil }
    Definition Classes
    MergeToEndpointLowPrio
  27. implicit val hnilPrecompiledCase: PrecompileEndpoint[HNil] { ... /* 3 definitions in type refinement */ }
    Definition Classes
    PrecompileEndpointLowPrio
  28. implicit def hnilToList[Req, Resp]: ServeToList[HNil, Req, Resp]
    Definition Classes
    ServeToListLowPrio
  29. implicit val intExtractor: ValueExtractor[Int] { val typeDesc: String }
    Definition Classes
    ValueExtractorInstances
  30. implicit def lastFoldLeftList[H <: HList, Agg](implicit folder0: TypeLevelFoldLeft[H, Agg]): TypeLevelFoldLeftList[::[H, HNil]] { type Out = folder0.Out :: shapeless.HNil }
    Definition Classes
    TypeLevelFoldLeftListLowPrio
  31. def link[H <: HList, Fold <: HList](apiLists: CompositionCons[H])(implicit folder: Aux[H, Fold], pre: PrecompileEndpoint[Fold]): EndpointCompositionDefinition[Fold, Comp, Out]
  32. def link[H <: HList, Fold, El <: HList, In <: HList, ROut, Out](apiList: ApiTypeCarrier[H])(implicit folder: Aux[H, (HNil, HNil), Fold], ev: Aux[Fold, El, In, Out], extractor: Aux[El, In, HNil, ROut], funApply: FunctionApply[In, Out]): EndpointDefinition[El, In, ROut, CIn, Fun, Out]
  33. implicit val longExtractor: ValueExtractor[Long] { val typeDesc: String }
    Definition Classes
    ValueExtractorInstances
  34. implicit def mergeCase[F[_], El <: HList, In <: HList, Out0, ROut, CIn <: HList, PreT <: HList, Fun, FunT <: HList](implicit executor: EndpointExecutor[El, In, ROut, CIn, F, Out0], next: MergeToEndpoint[F, PreT, FunT]): MergeToEndpoint[F, ::[EndpointConstructor[F, Fun, El, In, ROut, CIn, Out0], PreT], ::[Fun, FunT]] { type Out = typedapi.server.Serve[executor.R,executor.Out] :: next.Out }
    Definition Classes
    MergeToEndpointLowPrio
  35. def mount[S, End <: HList, Req, Resp, Out](server: ServerManager[S], end: End)(implicit toList: ServeToList[End, Req, Resp], mounting: Aux[S, Req, Resp, Out]): Out
  36. def mount[S, El <: HList, In <: HList, ROut, CIn <: HList, F[_], FOut, Req, Resp, Out](server: ServerManager[S], endpoint: Endpoint[El, In, ROut, CIn, F, FOut])(implicit executor: Aux[Req, El, In, ROut, CIn, F, FOut, Resp], mounting: Aux[S, Req, Resp, Out]): Out
  37. implicit def pathElementTransformer[S, El <: HList, In <: HList, Out]: Aux[PathElement[S], (El, In, Out), (::[S, El], In, Out)]
    Definition Classes
    ApiTransformer
  38. implicit def pathExtractor[S, El <: HList, In <: HList, EIn <: HList](implicit wit: Aux[S], next: RouteExtractor[El, In, EIn]): RouteExtractor[::[S, El], In, EIn] { type Out = next.Out }
    Definition Classes
    RouteExtractorLowPrio
  39. implicit def postExtractor[EIn <: HList]: RouteExtractor[::[PostCall, HNil], HNil, EIn] { type Out = EIn }
    Definition Classes
    RouteExtractorMediumPrio
  40. implicit def postTransformer[A]: Aux[PostElement[A], (HNil, HNil), (::[PostCall, HNil], HNil, A)]
    Definition Classes
    ApiTransformer
  41. implicit def postWithBodyExtractor[Bd, EIn <: HList, REIn <: HList]: RouteExtractor[::[PostWithBodyCall[Bd], HNil], ::[FieldType[(BodyField)#T, Bd], HNil], EIn] { type Out = (typedapi.server.BodyType[Bd], EIn) }
    Definition Classes
    RouteExtractorMediumPrio
  42. implicit def postWithBodyTransformer[Bd, A]: Aux[PostWithBodyElement[Bd, A], (HNil, HNil), (::[PostWithBodyCall[Bd], HNil], ::[FieldType[(BodyField)#T, Bd], HNil], A)]
    Definition Classes
    ApiTransformer
  43. implicit def precompiledCase[El <: HList, In <: HList, Out, ROut, T <: HList](implicit extractor: Aux[El, In, HNil, ROut], funApply: FunctionApply[In, Out], next: PrecompileEndpoint[T]): Precompiled[El, In, CIn, Fun, Out, ROut, Comp, Out, T]
    Definition Classes
    PrecompileEndpointLowPrio
  44. implicit def putExtractor[EIn <: HList, REIn <: HList](implicit rev: Aux[EIn, REIn]): RouteExtractor[::[PutCall, HNil], HNil, EIn] { type Out = REIn }
    Definition Classes
    RouteExtractorMediumPrio
  45. implicit def putTransformer[A]: Aux[PutElement[A], (HNil, HNil), (::[PutCall, HNil], HNil, A)]
    Definition Classes
    ApiTransformer
  46. implicit def putWithBodyExtractor[Bd, EIn <: HList]: RouteExtractor[::[PutWithBodyCall[Bd], HNil], ::[FieldType[(BodyField)#T, Bd], HNil], EIn] { type Out = (typedapi.server.BodyType[Bd], EIn) }
    Definition Classes
    RouteExtractorMediumPrio
  47. implicit def putWithBodyTransformer[Bd, A]: Aux[PutWithBodyElement[Bd, A], (HNil, HNil), (::[PutWithBodyCall[Bd], HNil], ::[FieldType[(BodyField)#T, Bd], HNil], A)]
    Definition Classes
    ApiTransformer
  48. implicit def queryElementTransformer[S <: Symbol, A, El <: HList, In <: HList, Out]: Aux[QueryParam[S, A], (El, In, Out), (::[QueryInput, El], ::[FieldType[S, A], In], Out)]
    Definition Classes
    ApiTransformer
  49. implicit def queryExtractor[El <: HList, K <: Symbol, A, In <: HList, EIn <: HList](implicit wit: Aux[K], value: ValueExtractor[A], next: RouteExtractor[El, In, ::[A, EIn]]): RouteExtractor[::[QueryInput, El], ::[FieldType[K, A], In], EIn] { type Out = next.Out }
    Definition Classes
    RouteExtractorMediumPrio
  50. implicit def queryListElementTransformer[S <: Symbol, A, El <: HList, In <: HList, Out]: Aux[QueryParam[S, List[A]], (El, In, Out), (::[QueryInput, El], ::[FieldType[S, List[A]], In], Out)]
    Definition Classes
    ApiTransformer
  51. implicit def queryListExtractor[El <: HList, K <: Symbol, A, In <: HList, EIn <: HList](implicit wit: Aux[K], value: ValueExtractor[A], next: RouteExtractor[El, In, ::[List[A], EIn]]): RouteExtractor[::[QueryInput, El], ::[FieldType[K, List[A]], In], EIn] { type Out = next.Out }
    Definition Classes
    RouteExtractorMediumPrio
  52. implicit def queryOptListExtractor[El <: HList, K <: Symbol, A, In <: HList, EIn <: HList](implicit wit: Aux[K], value: ValueExtractor[A], next: RouteExtractor[El, In, ::[Option[A], EIn]]): RouteExtractor[::[QueryInput, El], ::[FieldType[K, Option[A]], In], EIn] { type Out = next.Out }
    Definition Classes
    RouteExtractorMediumPrio
  53. implicit def rawHeaderExtractor[El <: HList, In <: HList, EIn <: HList](implicit next: RouteExtractor[El, In, ::[Map[String, String], EIn]]): RouteExtractor[::[RawHeadersInput, El], ::[FieldType[(RawHeadersField)#T, Map[String, String]], In], EIn] { type Out = next.Out }
    Definition Classes
    RouteExtractorMediumPrio
  54. implicit def rawHeadersElementTransformer[El <: HList, In <: HList, Out]: Aux[RawHeadersParam.type, (El, In, Out), (::[RawHeadersInput, El], ::[FieldType[(RawHeadersField)#T, Map[String, String]], In], Out)]
    Definition Classes
    ApiTransformer
  55. implicit def segmentElementTransformer[S <: Symbol, A, El <: HList, In <: HList, Out]: Aux[SegmentParam[S, A], (El, In, Out), (::[SegmentInput, El], ::[FieldType[S, A], In], Out)]
    Definition Classes
    ApiTransformer
  56. implicit def segmentExtractor[El <: HList, K, A, In <: HList, EIn <: HList](implicit value: ValueExtractor[A], next: RouteExtractor[El, In, ::[A, EIn]]): RouteExtractor[::[SegmentInput, El], ::[FieldType[K, A], In], EIn] { type Out = next.Out }
    Definition Classes
    RouteExtractorMediumPrio
  57. implicit def serveToList[Req, Resp, T <: HList](implicit next: ServeToList[T, Req, Resp]): ServeToList[::[Serve[Req, Resp], T], Req, Resp]
    Definition Classes
    ServeToListLowPrio
  58. implicit val shortExtractor: ValueExtractor[Short] { val typeDesc: String }
    Definition Classes
    ValueExtractorInstances
  59. implicit val stringExtractor: ValueExtractor[String] { val typeDesc: String }
    Definition Classes
    ValueExtractorInstances
  60. object =:
  61. object EndpointExecutor
  62. object FunctionApply
  63. object MergeToEndpoint
  64. object MountEndpoints
  65. object PrecompileEndpoint
  66. object RouteExtractor
  67. object RouteNotFound extends ExtractionError with Product with Serializable
  68. object ServerManager extends Serializable
  69. object endpointToServe extends Poly1

Inherited from MergeToEndpointLowPrio

Inherited from PrecompileEndpointLowPrio

Inherited from ServeToListLowPrio

Inherited from FoldResultEvidenceLowPrio

Inherited from RouteExtractorMediumPrio

Inherited from RouteExtractorLowPrio

Inherited from ValueExtractorInstances

Inherited from FunctionApplyLowPrio

Inherited from ApiTransformer

Inherited from TypeLevelFoldLeftListLowPrio

Inherited from TypeLevelFoldLeftLowPrio

Inherited from AnyRef

Inherited from Any

Ungrouped