Package

typedapi

client

Permalink

package client

Linear Supertypes
ApiCompilerOps, ApiCompilerOpsLowPrio, ApiCompilerListLowPrio, ApiCompilerMediumPrio, ApiCompilerLowPrio, FoldResultEvidenceLowPrio, ApiTransformer, TypeLevelFoldLeftListLowPrio, TypeLevelFoldLeftLowPrio, HListToCompositionLowPrio, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. client
  2. ApiCompilerOps
  3. ApiCompilerOpsLowPrio
  4. ApiCompilerListLowPrio
  5. ApiCompilerMediumPrio
  6. ApiCompilerLowPrio
  7. FoldResultEvidenceLowPrio
  8. ApiTransformer
  9. TypeLevelFoldLeftListLowPrio
  10. TypeLevelFoldLeftLowPrio
  11. HListToCompositionLowPrio
  12. AnyRef
  13. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. final case class :|:[El <: HList, In <: HList, O, D <: HList, T <: ApiComposition](compiler: Aux[El, In, O, D], tail: T) extends ApiComposition with Product with Serializable

    Permalink
  2. trait ApiCompiler[El <: HList, In <: HList, O] extends AnyRef

    Permalink

    Compiles type level api description into a function returning data (uri, query, header, body) and return-type A which are used for a request.

    Compiles type level api description into a function returning data (uri, query, header, body) and return-type A which are used for a request.

    Annotations
    @implicitNotFound( ... )
  3. trait ApiCompilerList[H <: HList] extends AnyRef

    Permalink
    Annotations
    @implicitNotFound( ... )
  4. trait ApiCompilerListLowPrio extends AnyRef

    Permalink
  5. trait ApiCompilerLowPrio extends AnyRef

    Permalink
  6. trait ApiCompilerMediumPrio extends ApiCompilerLowPrio

    Permalink
  7. sealed trait ApiComposition extends AnyRef

    Permalink

    Syntactic sugar to enable: val api = (:= "foo" :> Get[Foo]) :|: (:= "bar" :> Get[Bar])

    Syntactic sugar to enable: val api = (:= "foo" :> Get[Foo]) :|: (:= "bar" :> Get[Bar])

    val (foo :|: bar :|: =:) = compile(transform(api))

  8. implicit class ApiOps0[El <: HList, O, D <: HList] extends AnyRef

    Permalink
    Definition Classes
    ApiCompilerOps
  9. implicit class ApiOps1[El <: HList, O, D <: HList, K0, V0] extends BaseApiOps[El, ::[FieldType[K0, V0], HNil], O, D]

    Permalink
    Definition Classes
    ApiCompilerOpsLowPrio
  10. implicit class ApiOps2[El <: HList, O, D <: HList, K0, V0, K1, V1] extends BaseApiOps[El, In2[K0, V0, K1, V1], O, D]

    Permalink
    Definition Classes
    ApiCompilerOpsLowPrio
  11. implicit class ApiOps3[El <: HList, O, D <: HList, K0, V0, K1, V1, K2, V2] extends BaseApiOps[El, In3[K0, V0, K1, V1, K2, V2], O, D]

    Permalink
    Definition Classes
    ApiCompilerOpsLowPrio
  12. implicit class ApiOps4[El <: HList, O, D <: HList, K0, V0, K1, V1, K2, V2, K3, V3] extends BaseApiOps[El, In4[K0, V0, K1, V1, K2, V2, K3, V3], O, D]

    Permalink
    Definition Classes
    ApiCompilerOpsLowPrio
  13. implicit class ApiOps5[El <: HList, O, D <: HList, K0, V0, K1, V1, K2, V2, K3, V3, K4, V4] extends BaseApiOps[El, In5[K0, V0, K1, V1, K2, V2, K3, V3, K4, V4], O, D]

    Permalink
    Definition Classes
    ApiCompilerOpsLowPrio
  14. implicit class ApiOps6[El <: HList, O, D <: HList, K0, V0, K1, V1, K2, V2, K3, V3, K4, V4, K5, V5] extends BaseApiOps[El, In6[K0, V0, K1, V1, K2, V2, K3, V3, K4, V4, K5, V5], O, D]

    Permalink
    Definition Classes
    ApiCompilerOpsLowPrio
  15. implicit class ApiOps7[El <: HList, O, D <: HList, K0, V0, K1, V1, K2, V2, K3, V3, K4, V4, K5, V5, K6, V6] extends BaseApiOps[El, In7[K0, V0, K1, V1, K2, V2, K3, V3, K4, V4, K5, V5, K6, V6], O, D]

    Permalink
    Definition Classes
    ApiCompilerOpsLowPrio
  16. implicit class ApiOps8[El <: HList, O, D <: HList, K0, V0, K1, V1, K2, V2, K3, V3, K4, V4, K5, V5, K6, V6, K7, V7] extends BaseApiOps[El, In8[K0, V0, K1, V1, K2, V2, K3, V3, K4, V4, K5, V5, K6, V6, K7, V7], O, D]

    Permalink
    Definition Classes
    ApiCompilerOpsLowPrio
  17. implicit class ApiOpsN[El <: HList, O, D <: HList, In <: HList] extends BaseApiOps[El, In, O, D]

    Permalink
    Definition Classes
    ApiCompilerOpsLowPrio
  18. trait ApiRequest[D <: HList, C, F[_], Out] extends AnyRef

    Permalink

    Basic api request structure.

    Basic api request structure. Expected input data and return-type are defined for each method.

  19. final case class ClientManager[C](client: C, host: String, port: Int) extends Product with Serializable

    Permalink
  20. type Data = ::[List[String], ::[Map[String, List[String]], ::[Map[String, String], HNil]]]

    Permalink
    Definition Classes
    ApiCompilerLowPrio
  21. type DataWithBody[Bd] = ::[List[String], ::[Map[String, List[String]], ::[Map[String, String], ::[Bd, HNil]]]]

    Permalink
    Definition Classes
    ApiCompilerLowPrio
  22. trait DeleteRequest[C, F[_], A] extends ApiRequest[RequestData[DeleteCall, Data], C, F, A]

    Permalink
    Annotations
    @implicitNotFound( ... )
  23. trait GetRequest[C, F[_], A] extends ApiRequest[RequestData[GetCall, Data], C, F, A]

    Permalink
    Annotations
    @implicitNotFound( ... )
  24. sealed trait HListToComposition[H <: HList] extends AnyRef

    Permalink

    Transform apis composed in a HList into ApiComposition representation.

  25. trait HListToCompositionLowPrio extends AnyRef

    Permalink
  26. type In2[K0, V0, K1, V1] = ::[FieldType[K0, V0], ::[FieldType[K1, V1], HNil]]

    Permalink
    Definition Classes
    ApiCompilerOpsLowPrio
  27. type In3[K0, V0, K1, V1, K2, V2] = ::[FieldType[K0, V0], ::[FieldType[K1, V1], ::[FieldType[K2, V2], HNil]]]

    Permalink
    Definition Classes
    ApiCompilerOpsLowPrio
  28. type In4[K0, V0, K1, V1, K2, V2, K3, V3] = ::[FieldType[K0, V0], ::[FieldType[K1, V1], ::[FieldType[K2, V2], ::[FieldType[K3, V3], HNil]]]]

    Permalink
    Definition Classes
    ApiCompilerOpsLowPrio
  29. type In5[K0, V0, K1, V1, K2, V2, K3, V3, K4, V4] = ::[FieldType[K0, V0], ::[FieldType[K1, V1], ::[FieldType[K2, V2], ::[FieldType[K3, V3], ::[FieldType[K4, V4], HNil]]]]]

    Permalink
    Definition Classes
    ApiCompilerOpsLowPrio
  30. type In6[K0, V0, K1, V1, K2, V2, K3, V3, K4, V4, K5, V5] = ::[FieldType[K0, V0], ::[FieldType[K1, V1], ::[FieldType[K2, V2], ::[FieldType[K3, V3], ::[FieldType[K4, V4], ::[FieldType[K5, V5], HNil]]]]]]

    Permalink
    Definition Classes
    ApiCompilerOpsLowPrio
  31. type In7[K0, V0, K1, V1, K2, V2, K3, V3, K4, V4, K5, V5, K6, V6] = ::[FieldType[K0, V0], ::[FieldType[K1, V1], ::[FieldType[K2, V2], ::[FieldType[K3, V3], ::[FieldType[K4, V4], ::[FieldType[K5, V5], ::[FieldType[K6, V6], HNil]]]]]]]

    Permalink
    Definition Classes
    ApiCompilerOpsLowPrio
  32. type In8[K0, V0, K1, V1, K2, V2, K3, V3, K4, V4, K5, V5, K6, V6, K7, V7] = ::[FieldType[K0, V0], ::[FieldType[K1, V1], ::[FieldType[K2, V2], ::[FieldType[K3, V3], ::[FieldType[K4, V4], ::[FieldType[K5, V5], ::[FieldType[K6, V6], ::[FieldType[K7, V7], HNil]]]]]]]]

    Permalink
    Definition Classes
    ApiCompilerOpsLowPrio
  33. trait PostRequest[C, F[_], A] extends ApiRequest[RequestData[PostCall, Data], C, F, A]

    Permalink
    Annotations
    @implicitNotFound( ... )
  34. trait PostWithBodyRequest[C, F[_], Bd, A] extends ApiRequest[RequestData[PostWithBodyCall[Bd], DataWithBody[Bd]], C, F, A]

    Permalink
    Annotations
    @implicitNotFound( ... )
  35. trait PutRequest[C, F[_], A] extends ApiRequest[RequestData[PutCall, Data], C, F, A]

    Permalink
    Annotations
    @implicitNotFound( ... )
  36. trait PutWithBodyRequest[C, F[_], Bd, A] extends ApiRequest[RequestData[PutWithBodyCall[Bd], DataWithBody[Bd]], C, F, A]

    Permalink
    Annotations
    @implicitNotFound( ... )
  37. type RequestData[R, D <: HList] = ::[FieldType[R, D], HNil]

    Permalink
    Definition Classes
    ApiCompilerLowPrio
  38. type Transformed[El <: HList, In <: HList, Out, D <: HList] = (El, In, Out)

    Permalink

Value Members

  1. object =: extends ApiComposition with Product with Serializable

    Permalink
  2. object ApiCompiler

    Permalink
  3. object ApiCompilerList

    Permalink
  4. object TypedApi

    Permalink
  5. def compile[H <: HList, In <: HList, Fold <: HList, HL <: HList, Out <: HList](apiLists: CompositionCons[H])(implicit folders: Aux[H, Fold], compilers: Aux[Fold, HL], composition: HListToComposition[HL]): Out

    Permalink
  6. def compile[H <: HList, Fold, El <: HList, In <: HList, Out, D <: HList](apiList: ApiTypeCarrier[H])(implicit folder: Aux[H, (HNil, HNil), Fold], ev: Aux[Fold, El, In, Out], compiler: Aux[El, In, Out, D]): Aux[El, In, Out, D]

    Permalink
  7. implicit def compilerList[El0 <: HList, In0 <: HList, O, D0 <: HList, T <: HList](implicit compiler0: Aux[El0, In0, O, D0], list: ApiCompilerList[T]): ApiCompilerList[::[Transformed[El0, In0, O, D0], T]] { ... /* 2 definitions in type refinement */ }

    Permalink
    Definition Classes
    ApiCompilerListLowPrio
  8. implicit def consComposition[El <: HList, In <: HList, O, D <: HList, T <: HList](implicit next: HListToComposition[T]): HListToComposition[::[Aux[El, In, O, D], T]] { type Out = typedapi.client.:|:[El,In,O,D,next.Out] }

    Permalink
    Definition Classes
    HListToCompositionLowPrio
  9. implicit def deleteCompiler[A]: ApiCompiler[::[DeleteCall, HNil], HNil, A] { type Out = ApiCompilerLowPrio.this.RequestData[typedapi.shared.DeleteCall,ApiCompilerLowPrio.this.Data] }

    Permalink
    Definition Classes
    ApiCompilerLowPrio
  10. implicit def deleteTransformer[A]: Aux[DeleteElement[A], (HNil, HNil), (::[DeleteCall, HNil], HNil, A)]

    Permalink
    Definition Classes
    ApiTransformer
  11. implicit def evidence[El0 <: HList, In0 <: HList, Out0]: Aux[(El0, In0, Out0), El0, In0, Out0]

    Permalink
    Definition Classes
    FoldResultEvidenceLowPrio
  12. 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]

    Permalink
    Definition Classes
    TypeLevelFoldLeftLowPrio
  13. implicit def folderLeftList[H <: HList, Agg, T <: HList](implicit folder0: TypeLevelFoldLeft[H, Agg], list: TypeLevelFoldLeftList[T]): TypeLevelFoldLeftList[::[H, T]] { type Out = shapeless.::[folder0.Out,list.Out] }

    Permalink
    Definition Classes
    TypeLevelFoldLeftListLowPrio
  14. implicit def getCompiler[A]: ApiCompiler[::[GetCall, HNil], HNil, A] { type Out = ApiCompilerLowPrio.this.RequestData[typedapi.shared.GetCall,ApiCompilerLowPrio.this.Data] }

    Permalink
    Definition Classes
    ApiCompilerLowPrio
  15. implicit def getTransformer[A]: Aux[GetElement[A], (HNil, HNil), (::[GetCall, HNil], HNil, A)]

    Permalink
    Definition Classes
    ApiTransformer
  16. 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)]

    Permalink
    Definition Classes
    ApiTransformer
  17. implicit def headerInputCompiler[T <: HList, K <: Symbol, V, In <: HList, O](implicit wit: Aux[K], compiler: ApiCompiler[T, In, O]): ApiCompiler[::[HeaderInput, T], ::[FieldType[K, V], In], O] { type Out = compiler.Out }

    Permalink
    Definition Classes
    ApiCompilerLowPrio
  18. implicit def headersOptInputCompiler[T <: HList, K <: Symbol, V, In <: HList, O](implicit wit: Aux[K], compiler: ApiCompiler[T, In, O]): ApiCompiler[::[HeaderInput, T], ::[FieldType[K, Option[V]], In], O] { type Out = compiler.Out }

    Permalink
    Definition Classes
    ApiCompilerMediumPrio
  19. implicit def hnilCase[Agg]: Aux[HNil, Agg, Agg]

    Permalink
    Definition Classes
    TypeLevelFoldLeftLowPrio
  20. implicit val hnilComposition: HListToComposition[HNil] { type Out = typedapi.client.=:.type }

    Permalink
    Definition Classes
    HListToCompositionLowPrio
  21. implicit def lastCompilerList[El0 <: HList, In0 <: HList, O, D0 <: HList](implicit compiler0: Aux[El0, In0, O, D0]): ApiCompilerList[::[Transformed[El0, In0, O, D0], HNil]] { ... /* 2 definitions in type refinement */ }

    Permalink
    Definition Classes
    ApiCompilerListLowPrio
  22. implicit def lastFoldLeftList[H <: HList, Agg](implicit folder0: TypeLevelFoldLeft[H, Agg]): TypeLevelFoldLeftList[::[H, HNil]] { type Out = shapeless.::[folder0.Out,shapeless.HNil] }

    Permalink
    Definition Classes
    TypeLevelFoldLeftListLowPrio
  23. package ops

    Permalink
  24. implicit def pathCompiler[S, T <: HList, In <: HList, O](implicit wit: Aux[S], compiler: ApiCompiler[T, In, O]): ApiCompiler[::[S, T], In, O] { type Out = compiler.Out }

    Permalink
    Definition Classes
    ApiCompilerLowPrio
  25. implicit def pathElementTransformer[S, El <: HList, In <: HList, Out]: Aux[PathElement[S], (El, In, Out), (::[S, El], In, Out)]

    Permalink
    Definition Classes
    ApiTransformer
  26. implicit def postCompiler[A]: ApiCompiler[::[PostCall, HNil], HNil, A] { type Out = ApiCompilerLowPrio.this.RequestData[typedapi.shared.PostCall,ApiCompilerLowPrio.this.Data] }

    Permalink
    Definition Classes
    ApiCompilerLowPrio
  27. implicit def postTransformer[A]: Aux[PostElement[A], (HNil, HNil), (::[PostCall, HNil], HNil, A)]

    Permalink
    Definition Classes
    ApiTransformer
  28. implicit def postWithBodyCompiler[Bd, A]: ApiCompiler[::[PostWithBodyCall[Bd], HNil], ::[FieldType[(BodyField)#T, Bd], HNil], A] { type Out = ApiCompilerLowPrio.this.RequestData[typedapi.shared.PostWithBodyCall[Bd],ApiCompilerLowPrio.this.DataWithBody[Bd]] }

    Permalink
    Definition Classes
    ApiCompilerLowPrio
  29. implicit def postWithBodyTransformer[Bd, A]: Aux[PostWithBodyElement[Bd, A], (HNil, HNil), (::[PostWithBodyCall[Bd], HNil], ::[FieldType[(BodyField)#T, Bd], HNil], A)]

    Permalink
    Definition Classes
    ApiTransformer
  30. implicit def putCompiler[A]: ApiCompiler[::[PutCall, HNil], HNil, A] { type Out = ApiCompilerLowPrio.this.RequestData[typedapi.shared.PutCall,ApiCompilerLowPrio.this.Data] }

    Permalink
    Definition Classes
    ApiCompilerLowPrio
  31. implicit def putTransformer[A]: Aux[PutElement[A], (HNil, HNil), (::[PutCall, HNil], HNil, A)]

    Permalink
    Definition Classes
    ApiTransformer
  32. implicit def putWithBodyCompiler[Bd, A]: ApiCompiler[::[PutWithBodyCall[Bd], HNil], ::[FieldType[(BodyField)#T, Bd], HNil], A] { type Out = ApiCompilerLowPrio.this.RequestData[typedapi.shared.PutWithBodyCall[Bd],ApiCompilerLowPrio.this.DataWithBody[Bd]] }

    Permalink
    Definition Classes
    ApiCompilerLowPrio
  33. implicit def putWithBodyTransformer[Bd, A]: Aux[PutWithBodyElement[Bd, A], (HNil, HNil), (::[PutWithBodyCall[Bd], HNil], ::[FieldType[(BodyField)#T, Bd], HNil], A)]

    Permalink
    Definition Classes
    ApiTransformer
  34. 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)]

    Permalink
    Definition Classes
    ApiTransformer
  35. implicit def queryInputCompiler[T <: HList, K <: Symbol, V, In <: HList, O](implicit wit: Aux[K], compiler: ApiCompiler[T, In, O]): ApiCompiler[::[QueryInput, T], ::[FieldType[K, V], In], O] { type Out = compiler.Out }

    Permalink
    Definition Classes
    ApiCompilerLowPrio
  36. 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)]

    Permalink
    Definition Classes
    ApiTransformer
  37. implicit def queryListInputCompiler[T <: HList, K <: Symbol, V, In <: HList, O](implicit wit: Aux[K], compiler: ApiCompiler[T, In, O]): ApiCompiler[::[QueryInput, T], ::[FieldType[K, List[V]], In], O] { type Out = compiler.Out }

    Permalink
    Definition Classes
    ApiCompilerMediumPrio
  38. implicit def queryOptInputCompiler[T <: HList, K <: Symbol, V, In <: HList, O](implicit wit: Aux[K], compiler: ApiCompiler[T, In, O]): ApiCompiler[::[QueryInput, T], ::[FieldType[K, Option[V]], In], O] { type Out = compiler.Out }

    Permalink
    Definition Classes
    ApiCompilerMediumPrio
  39. implicit def rawHeadersElementTransformer[El <: HList, In <: HList, Out]: Aux[RawHeadersParam.type, (El, In, Out), (::[RawHeadersInput, El], ::[FieldType[(RawHeadersField)#T, Map[String, String]], In], Out)]

    Permalink
    Definition Classes
    ApiTransformer
  40. implicit def rawHeadersInputCompiler[T <: HList, In <: HList, O](implicit compiler: ApiCompiler[T, In, O]): ApiCompiler[::[RawHeadersInput, T], ::[FieldType[(RawHeadersField)#T, Map[String, String]], In], O] { type Out = compiler.Out }

    Permalink
    Definition Classes
    ApiCompilerLowPrio
  41. 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)]

    Permalink
    Definition Classes
    ApiTransformer
  42. implicit def segmentInputCompiler[T <: HList, K, V, In <: HList, O](implicit compiler: ApiCompiler[T, In, O]): ApiCompiler[::[SegmentInput, T], ::[FieldType[K, V], In], O] { type Out = compiler.Out }

    Permalink
    Definition Classes
    ApiCompilerLowPrio
  43. package test

    Permalink

Inherited from ApiCompilerOps

Inherited from ApiCompilerOpsLowPrio

Inherited from ApiCompilerListLowPrio

Inherited from ApiCompilerMediumPrio

Inherited from ApiCompilerLowPrio

Inherited from FoldResultEvidenceLowPrio

Inherited from ApiTransformer

Inherited from TypeLevelFoldLeftListLowPrio

Inherited from TypeLevelFoldLeftLowPrio

Inherited from HListToCompositionLowPrio

Inherited from AnyRef

Inherited from Any

Ungrouped