Packages

object Macros

Macro based Codecs

Allows the compile time creation of Codecs for case classes.

The recommended approach is to use the implicit Macros.createCodecProvider[T](clazz:Class[T])* method to help build a codecRegistry: import org.mongodb.scala.bson.codecs.Macros.createCodecProvider import org.bson.codecs.configuration.CodecRegistries.{fromRegistries, fromProviders}

case class Contact(phone: String) case class User(_id: Int, username: String, age: Int, hobbies: List[String], contacts: List[Contact])

val codecRegistry = fromRegistries(fromProviders(classOf[User], classOf[Contact]), MongoClient.DEFAULT_CODEC_REGISTRY)

Since

2.0

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

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() @IntrinsicCandidate()
  6.  macro def createCodec[T](codecRegistry: CodecRegistry): Codec[T]

    Creates a Codec for a case class

    Creates a Codec for a case class

    T

    the case class to create a codec from

    codecRegistry

    the Codec Registry to use

    returns

    the Codec for the case class

    Annotations
    @compileTimeOnly("Creating a Codec utilises Macros and must be run at compile time.")
  7.  macro def createCodec[T](): Codec[T]

    Creates a Codec for a case class

    Creates a Codec for a case class

    T

    the case class to create a Codec from

    returns

    the Codec for the case class

    Annotations
    @compileTimeOnly("Creating a Codec utilises Macros and must be run at compile time.")
  8.  macro def createCodecIgnoreNone[T](codecRegistry: CodecRegistry): Codec[T]

    Creates a Codec for a case class

    Creates a Codec for a case class

    T

    the case class to create a codec from

    codecRegistry

    the Codec Registry to use

    returns

    the Codec for the case class

    Annotations
    @compileTimeOnly("Creating a Codec utilises Macros and must be run at compile time.")
    Since

    2.1

  9.  macro def createCodecIgnoreNone[T](): Codec[T]

    Creates a Codec for a case class

    Creates a Codec for a case class

    T

    the case class to create a Codec from

    returns

    the Codec for the case class

    Annotations
    @compileTimeOnly("Creating a Codec utilises Macros and must be run at compile time.")
    Since

    2.1

  10.  implicit macro def createCodecProvider[T](clazz: Class[T]): CodecProvider

    Creates a CodecProvider for a case class using the given class to represent the case class

    Creates a CodecProvider for a case class using the given class to represent the case class

    T

    the case class to create a Codec from

    clazz

    the clazz that is the case class

    returns

    the CodecProvider for the case class

    Annotations
    @compileTimeOnly("Creating a CodecProvider utilises Macros and must be run at compile time.")
  11.  macro def createCodecProvider[T](): CodecProvider

    Creates a CodecProvider for a case class

    Creates a CodecProvider for a case class

    T

    the case class to create a Codec from

    returns

    the CodecProvider for the case class

    Annotations
    @compileTimeOnly("Creating a CodecProvider utilises Macros and must be run at compile time.")
  12.  macro def createCodecProviderIgnoreNone[T](clazz: Class[T]): CodecProvider

    Creates a CodecProvider for a case class that ignores any None values, using the given class to represent the case class

    Creates a CodecProvider for a case class that ignores any None values, using the given class to represent the case class

    T

    the case class to create a Codec from

    clazz

    the clazz that is the case class

    returns

    the CodecProvider for the case class

    Annotations
    @compileTimeOnly("Creating a CodecProvider utilises Macros and must be run at compile time.")
    Since

    2.1

  13.  macro def createCodecProviderIgnoreNone[T](): CodecProvider

    Creates a CodecProvider for a case class that ignores any None values

    Creates a CodecProvider for a case class that ignores any None values

    T

    the case class to create a Codec from

    returns

    the CodecProvider for the case class

    Annotations
    @compileTimeOnly("Creating a CodecProvider utilises Macros and must be run at compile time.")
    Since

    2.1

  14.  final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  15.  def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  16.  final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  17.  def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  18.  final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  19.  final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  20.  final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  21.  final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  22.  final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  23.  def toString(): String
    Definition Classes
    AnyRef → Any
  24.  final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  25.  final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  26.  final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])

Deprecated Value Members

  1.  def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

Inherited from AnyRef

Inherited from Any

Ungrouped