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

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

The newest version!
package slog4s.generic

import magnolia.{CaseClass, Magnolia, SealedTrait}
import slog4s.LogEncoder
import slog4s.generic.internal.Common
import scala.language.experimental.macros

object semi {
  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)
  }

  /** Semi automatic derivation of [[LogEncoder]] instance for case class or
    * sealed trait.
    */
  def logEncoder[T]: LogEncoder[T] = macro Magnolia.gen[T]
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy