From 5ef502abc058358ec3a329c774bb42b9a7bd106f Mon Sep 17 00:00:00 2001 From: Jakob Odersky Date: Thu, 8 Mar 2018 16:13:03 -0800 Subject: Don't ake derived formats implicit by default --- src/main/scala/DerivedFormats.scala | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'src/main/scala/DerivedFormats.scala') diff --git a/src/main/scala/DerivedFormats.scala b/src/main/scala/DerivedFormats.scala index cbfbd61..4339e5c 100644 --- a/src/main/scala/DerivedFormats.scala +++ b/src/main/scala/DerivedFormats.scala @@ -5,7 +5,7 @@ import spray.json._ import scala.language.experimental.macros -/** Mixin that enables automatic derivation of JSON formats for any product +/** Mixin that enables derivation of JSON formats for any product * (case classes) or coproduct (sealed traits) types. */ trait DerivedFormats { self: BasicFormats => type Typeclass[T] = JsonFormat[T] @@ -75,14 +75,17 @@ trait DerivedFormats { self: BasicFormats => } } - implicit def derivedFormat[T]: RootJsonFormat[T] = - macro DerivedFormatHelper.derivedFormat[T] + def jsonFormat[T]: RootJsonFormat[T] = + macro DerivedFormatMacros.derivedFormat[T] } -object DerivedFormats extends DerivedFormats with BasicFormats +trait ImplicitDerivedFormats extends DerivedFormats { self: BasicFormats => + implicit def implicitJsonFormat[T]: RootJsonFormat[T] = + macro DerivedFormatMacros.derivedFormat[T] +} -object DerivedFormatHelper { +object DerivedFormatMacros { import scala.reflect.macros.whitebox._ /** Utility that converts a magnolia-generated JsonFormat to a RootJsonFormat. */ -- cgit v1.2.3