object Macros extends MacroAnnotations
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
MacroOptions for specific options
MacroConfiguration for extended configuration
- Alphabetic
- By Inheritance
- Macros
- MacroAnnotations
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- final class LocalVar[T] extends AnyRef
Only for internal purposes
- final class Placeholder extends AnyRef
Only for internal purposes
- final class WithOptions[Opts <: MacroOptions] extends AnyRef
Macros for generating
BSONReader
andBSONWriter
at compile time, with given options.
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- def configured[Opts <: MacroOptions](implicit config: Aux[Opts]): WithOptions[Opts]
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]
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- macro def handler[A]: BSONDocumentHandler[A]
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()
- macro def handlerOpts[A, Opts <: Default]: BSONDocumentHandler[A]
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()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- macro def reader[A]: BSONDocumentReader[A]
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()
- macro def readerOpts[A, Opts <: Default]: BSONDocumentReader[A]
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()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- def using[Opts <: MacroOptions]: WithOptions[Opts]
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]
- macro def valueHandler[A <: AnyVal]: BSONHandler[A]
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()
- macro def valueReader[A <: AnyVal]: BSONReader[A]
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()
- macro def valueWriter[A <: AnyVal]: BSONWriter[A]
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()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- macro def writer[A]: BSONDocumentWriter[A]
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()
- macro def writerOpts[A, Opts <: Default]: BSONDocumentWriter[A]
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()
- object Annotations
Annotations to use on case classes that are being processed by macros.
Annotations to use on case classes that are being processed by macros.
- Definition Classes
- MacroAnnotations
- object Placeholder
Only for internal purposes