Object

reactivemongo.api.bson

Macros

Related Doc: package bson

Permalink

object Macros

Macros for generating BSONReader and BSONWriter at compile time.

import reactivemongo.api.bson.Macros

case class Person(name: String, surname: String)

implicit val personHandler = Macros.handler[Person]
See also

MacroConfiguration for extended configuration

MacroOptions for specific options

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

Type Members

  1. final class LocalVar[T] extends AnyRef

    Permalink

    Only for internal purposes

  2. final class Placeholder extends AnyRef

    Permalink

    Only for internal purposes

  3. final class WithOptions[Opts <: MacroOptions] extends AnyRef

    Permalink

    Macros for generating BSONReader and BSONWriter at compile time, with given options.

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. object Annotations

    Permalink

    Annotations to use on case classes that are being processed by macros.

  5. object Placeholder

    Permalink

    Only for internal purposes

  6. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  7. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  8. def configured[Opts <: MacroOptions](implicit config: Aux[Opts]): WithOptions[Opts]

    Permalink

    Returns macros using the current BSON configuration.

    Returns macros using the current BSON configuration.

    Opts

    the compile-time options

    import reactivemongo.api.bson.{
      BSONDocumentReader, MacroConfiguration, Macros
    }
    case class Foo(name: String)
    // Materializes a `BSONDocumentReader[Foo]`,
    // with the configuration resolved at compile time
    val r1: BSONDocumentReader[Foo] = Macros.configured.reader[Foo]
    val r2: BSONDocumentReader[Foo] = Macros.configured(
      MacroConfiguration.simpleTypeName).reader[Foo]
  9. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  10. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  11. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  12. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  13. macro def handler[A]: BSONDocumentHandler[A]

    Permalink

    Creates a BSONDocumentHandler for type A.

    Creates a BSONDocumentHandler for type A. The default MacroConfiguration is used (see Macros.configured).

    import reactivemongo.api.bson.{ BSONDocumentHandler, Macros }
    
    case class Foo(bar: String, lorem: Int)
    
    val handler: BSONDocumentHandler[Foo] = Macros.handler
    A

    the type of the value represented as BSON

    Annotations
    @SuppressWarnings()
  14. macro def handlerOpts[A, Opts <: Default]: BSONDocumentHandler[A]

    Permalink

    Creates a BSONDocumentHandler for type A.

    Creates a BSONDocumentHandler for type A. The default MacroConfiguration is used (see Macros.configured), with given additional options.

    import reactivemongo.api.bson.{ Macros, MacroOptions }
    
    case class Foo(bar: String, lorem: Int)
    
    val handler = Macros.handlerOpts[Foo, MacroOptions.Default]
    A

    the type of the value represented as BSON

    Opts

    the compile-time options

    Annotations
    @SuppressWarnings()
  15. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  16. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  17. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  18. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  19. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  20. macro def reader[A]: BSONDocumentReader[A]

    Permalink

    Creates a BSONDocumentReader for type A.

    Creates a BSONDocumentReader for type A. The default MacroConfiguration is used (see Macros.configured).

    import reactivemongo.api.bson.{ BSONDocumentReader, Macros }
    
    case class Foo(bar: String, lorem: Int)
    
    val reader: BSONDocumentReader[Foo] = Macros.reader
    A

    the type of the value represented as BSON

    Annotations
    @SuppressWarnings()
  21. macro def readerOpts[A, Opts <: Default]: BSONDocumentReader[A]

    Permalink

    Creates a BSONDocumentReader for type A.

    Creates a BSONDocumentReader for type A. The default MacroConfiguration is used (see Macros.configured), with given additional options.

    import reactivemongo.api.bson.{ Macros, MacroOptions }
    
    case class Foo(bar: String, lorem: Int)
    
    val reader = Macros.readerOpts[Foo, MacroOptions.Verbose]
    A

    the type of the value represented as BSON

    Opts

    the compile-time options

    Annotations
    @SuppressWarnings()
  22. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  23. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  24. def using[Opts <: MacroOptions]: WithOptions[Opts]

    Permalink

    Returns an inference context to call the BSON macros, using explicit compile-time options.

    Returns an inference context to call the BSON macros, using explicit compile-time options.

    Opts

    the compile-time options

    import reactivemongo.api.bson.{ BSONDocumentWriter, Macros, MacroOptions }
    case class Bar(score: Float)
    val w: BSONDocumentWriter[Bar] =
      Macros.using[MacroOptions.Default].writer[Bar]
  25. macro def valueHandler[A <: AnyVal]: BSONHandler[A]

    Permalink

    Creates a BSONHandler for Value Class A.

    Creates a BSONHandler for Value Class A.

    The inner value will be directly write from BSON value.

    import reactivemongo.api.bson.{
      BSONInteger, BSONReader, BSONWriter, Macros
    }
    
    final class FooVal(val v: Int) extends AnyVal // Value Class
    
    val vreader: BSONReader[FooVal] = Macros.valueReader[FooVal]
    val vwriter: BSONWriter[FooVal] = Macros.valueWriter[FooVal]
    
    vreader.readTry(BSONInteger(1)) // Success(FooVal(1))
    
    vwriter.writeTry(new FooVal(1)) // Success(BSONInteger(1))
    Annotations
    @SuppressWarnings()
  26. macro def valueReader[A <: AnyVal]: BSONReader[A]

    Permalink

    Creates a BSONReader for Value Class A.

    Creates a BSONReader for Value Class A.

    The inner value will be directly read from BSON value.

    import reactivemongo.api.bson.{ BSONInteger, BSONReader, Macros }
    
    final class FooVal(val v: Int) extends AnyVal // Value Class
    
    val vreader: BSONReader[FooVal] = Macros.valueReader[FooVal]
    
    vreader.readTry(BSONInteger(1)) // Success(FooVal(1))
    Annotations
    @SuppressWarnings()
  27. macro def valueWriter[A <: AnyVal]: BSONWriter[A]

    Permalink

    Creates a BSONWriter for Value Class A.

    Creates a BSONWriter for Value Class A.

    The inner value will be directly writen from BSON value.

    import reactivemongo.api.bson.{ BSONWriter, Macros }
    
    final class FooVal(val v: Int) extends AnyVal // Value Class
    
    val vwriter: BSONWriter[FooVal] = Macros.valueWriter[FooVal]
    
    vwriter.writeTry(new FooVal(1)) // Success(BSONInteger(1))
    Annotations
    @SuppressWarnings()
  28. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  29. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  30. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  31. macro def writer[A]: BSONDocumentWriter[A]

    Permalink

    Creates a BSONDocumentWriter for type A.

    Creates a BSONDocumentWriter for type A. The default MacroConfiguration is used (see Macros.configured).

    import reactivemongo.api.bson.{ BSONDocumentWriter, Macros }
    
    case class Foo(bar: String, lorem: Int)
    
    val writer: BSONDocumentWriter[Foo] = Macros.writer
    A

    the type of the value represented as BSON

    Annotations
    @SuppressWarnings()
  32. macro def writerOpts[A, Opts <: Default]: BSONDocumentWriter[A]

    Permalink

    Creates a BSONDocumentWriter for type A.

    Creates a BSONDocumentWriter for type A. The default MacroConfiguration is used (see Macros.configured), with given additional options.

    import reactivemongo.api.bson.{ Macros, MacroOptions }
    
    case class Foo(bar: String, lorem: Int)
    
    val writer = Macros.writerOpts[Foo, MacroOptions.DisableWarnings]
    A

    the type of the value represented as BSON

    Opts

    the compile-time options

    Annotations
    @SuppressWarnings()

Inherited from AnyRef

Inherited from Any

Ungrouped