Package

com.outworkers.phantom

macros

Permalink

package macros

Visibility
  1. Public
  2. All

Type Members

  1. trait ==:==[LL <: HList, RR <: HList] extends AnyRef

    Permalink

    A special implicitly materialized typeclass that compares HLists for equality.

    A special implicitly materialized typeclass that compares HLists for equality. This also prints more useful information to the end user if the HLists don't match. However, it is required because the standard =:= type class in Scala is not able to see through an HList generated as an abstract type member of another implicitly materialized type class.

    LL

    The left shapeless.HList type.

    RR

    The right shapeless.HList type.

    Annotations
    @implicitNotFound( ... )
  2. trait BindHelper[TP] extends AnyRef

    Permalink
    Annotations
    @implicitNotFound( ... )
  3. class BindMacros extends WhiteboxToolbelt with RootMacro

    Permalink
  4. trait DatabaseHelper[T <: Database[T]] extends AnyRef

    Permalink
  5. class DatabaseHelperMacro extends WhiteboxToolbelt with RootMacro

    Permalink
  6. class EqsMacro extends WhiteboxToolbelt with HListHelpers

    Permalink
  7. trait RootMacro extends HListHelpers with WhiteboxToolbelt

    Permalink
  8. trait SingleGeneric[T, Store, GenR] extends Serializable

    Permalink

    A very dirty typeclass used to duct type single argument calls to the store varargs autotupled method.

    A very dirty typeclass used to duct type single argument calls to the store varargs autotupled method. We currently expect the store method to auto-tuple argument types, which leads to problems when a single tuple argument is passed. In order to fix this, this type class will effectively pick a matching type between our single implementation of SingleGeneric and the traditional shapeless.Generic.

    Unlike the traditional implementation, a single tuple argument must not be expanded into a shapeless.HList of its enclosing types, but rather an shapeless.HList that merely wraps around the source type.

    Example:

    val singleGeneric = SingleGeneric[(String, Int)].Repr
    (String, Int) :: HNil
    
    val shapelessGeneric = Generic[(String, Int)]
    String :: Int :: HNil

    Unlike the traditional implementation of Generic we don't always need to destructure tuples, but because we cannot effectively distinguish, we are forced to duct-type and pick the appropriate implementation based on which variation between GenR and Store matches the input type.

    T

    The source type of the record that is passed to the store method as an auto-tupling argument.

    Store

    The HList input type inferred by TableHelper.

    GenR

    The generic HList type inferred by shapeless.Generic.

    Annotations
    @implicitNotFound( ... )
  9. class SingleGenericMacro extends HListHelpers with WhiteboxToolbelt

    Permalink
  10. trait TableHelper[T <: CassandraTable[T, R], R] extends Serializable

    Permalink
    Annotations
    @implicitNotFound( ... )
  11. class TableHelperMacro extends WhiteboxToolbelt with RootMacro

    Permalink

Value Members

  1. object ==:==

    Permalink
  2. object BindHelper

    Permalink
  3. object DatabaseHelper

    Permalink
  4. object SingleGeneric extends Serializable

    Permalink
  5. object TableHelper extends Serializable

    Permalink
  6. package debug

    Permalink
  7. package toolbelt

    Permalink

Ungrouped