All Downloads are FREE. Search and download functionalities are using the official Maven repository.

slog4s.generic.auto.scala Maven / Gradle / Ivy

The newest version!
package slog4s.generic

import magnolia.{CaseClass, SealedTrait}
import slog4s.LogEncoder
import slog4s.`export`.Exported
import slog4s.generic.internal.Common

import scala.language.experimental.macros

object auto {
  type Typeclass[T] = LogEncoder[T]
  def combine[T](caseClass: CaseClass[Typeclass, T]): Typeclass[T] = {
    Common.combine(caseClass)
  }
  def dispatch[T](sealedTrait: SealedTrait[Typeclass, T]): Typeclass[T] = {
    Common.dispatch(sealedTrait)
  }

  /** Automatically derives an instance of [[slog4s.LogEncoder]] for case class
    * or sealed trait.
    */
  implicit def genLogEncoder[T]: Exported[LogEncoder[T]] =
    macro internal.Macros.exportEncoder[T]

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy