Packages

object MacroOptions

MacroOptions factories & utilities.

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. MacroOptions
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Type Members

  1. trait AutomaticMaterialization extends Default

    For a sealed family (all implementations of a sealed trait or defined explicit union types), this option enables the automatic materialization of handlers for the member types.

    For a sealed family (all implementations of a sealed trait or defined explicit union types), this option enables the automatic materialization of handlers for the member types.

    If used, make sure it cannot lead to type recursion issue (reason why it's not disabled by default).

    import reactivemongo.api.bson.{ BSONDocumentReader, Macros, MacroOptions }
    
    sealed trait Family
    case class TypeA(n: Int) extends Family
    case class TypeB(s: String) extends Family
    case class TypeC(f: Float) extends Family
    
    val reader: BSONDocumentReader[Family] =
      Macros.using[MacroOptions.AutomaticMaterialization].reader[Family]
      // Automatically/internally materializes the readers for Type{A,B,C}
  2. trait Default extends MacroOptions

    The default options that are implied if invoking "non-Opts" method.

    The default options that are implied if invoking "non-Opts" method. All other options extend this.

  3. trait DisableWarnings extends Default

    The options to disable compilation warnings.

    The options to disable compilation warnings.

    import reactivemongo.api.bson.{ BSONDocumentWriter, Macros, MacroOptions }
    
    case class Bar(score: Float)
    
    val w: BSONDocumentWriter[Bar] =
      Macros.using[MacroOptions.DisableWarnings].writer[Bar]
  4. trait ReadDefaultValues extends Default

    Considering a class property with a default value, when reading the class from BSON if there is no BSON value corresponding to the property, then the default value is used.

    Considering a class property with a default value, when reading the class from BSON if there is no BSON value corresponding to the property, then the default value is used.

    import reactivemongo.api.bson.{
      BSONDocument, BSONDocumentReader, Macros, MacroOptions
    }
    
    case class Foo(id: Int, title: String = "default")
    
    val reader: BSONDocumentReader[Foo] =
      Macros.using[MacroOptions.ReadDefaultValues].reader[Foo]
    
    reader.readTry(BSONDocument("id" -> 1))
    // => Success: Foo(id = 1, title = "default")
  5. trait UnionType[Types <: \/[_, _]] extends Default

    This allows to restrict the handling of family to only some subtypes (not required to be sealed in this case).

    This allows to restrict the handling of family to only some subtypes (not required to be sealed in this case).

    import reactivemongo.api.bson.{
      BSONDocumentWriter, Macros, MacroOptions
    }, MacroOptions.\/
    
    trait Family
    case class TypeA(n: Int) extends Family
    case class TypeB(s: String) extends Family
    case class TypeC(f: Float) extends Family
    
    val writer: BSONDocumentWriter[Family] = {
      implicit val a = Macros.writer[TypeA]
      implicit val b = Macros.writer[TypeB]
    
      Macros.using[MacroOptions.UnionType[TypeA \/ TypeB]].writer[Family]
    }
    Types

    to restrict the subtypes to handle

    See also

    \/

  6. trait ValueOf[O <: MacroOptions] extends AnyRef

    Implicit resolution of MacroOptions

  7. trait Verbose extends Default

    The options to print out generated code during compilation.

    The options to print out generated code during compilation.

    import reactivemongo.api.bson.{ BSONDocumentWriter, Macros, MacroOptions }
    
    case class Bar(score: Float)
    
    val w: BSONDocumentWriter[Bar] =
      Macros.using[MacroOptions.Verbose].writer[Bar]
  8. trait \/[A, B] extends AnyRef

    Type for making type-level lists for UnionType.

    Type for making type-level lists for UnionType. If second parameter is another \/ it will be flattend out into a list and so on. Using infix notation makes much more sense since it then looks like a logical disjunction.

    Foo \/ Bar \/ Baz is interpreted as type Foo or type Bar or type Baz

    Annotations
    @SuppressWarnings()
    See also

    UnionType

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  6. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  7. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  8. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  9. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  10. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  11. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  12. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  13. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  14. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  15. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  16. def toString(): String
    Definition Classes
    AnyRef → Any
  17. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  18. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  19. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  20. object ValueOf extends LowPriorityValueOfImplicits

Inherited from AnyRef

Inherited from Any

Ungrouped