Package

reactivemongo

bson

Permalink

package bson

Linear Supertypes
DefaultBSONHandlers, AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. bson
  2. DefaultBSONHandlers
  3. AnyRef
  4. Any
  1. Hide All
  2. Show all
Visibility
  1. Public
  2. All

Type Members

  1. case class BSONArray(stream: Stream[Try[BSONValue]]) extends BSONValue with Product with Serializable

    Permalink

    A BSONArray structure (BSON type 0x04).

    A BSONArray structure (BSON type 0x04).

    A BSONArray is a straightforward BSONDocument where keys are a sequence of positive integers.

    A BSONArray is basically a stream of tuples (String, BSONValue) where the first member is a string representation of an index. It is completely lazy. The stream it wraps is a Stream[Try[(String, BSONValue)]] since we cannot be sure that a not yet deserialized value will be processed without error.

  2. class BSONArrayCollectionReader[M[_], T] extends BSONReader[BSONArray, M[T]]

    Permalink
    Definition Classes
    DefaultBSONHandlers
  3. class BSONArrayCollectionWriter[T, Repr] extends VariantBSONWriter[Repr, BSONArray]

    Permalink
    Definition Classes
    DefaultBSONHandlers
  4. case class BSONBinary(value: ReadableBuffer, subtype: Subtype) extends BSONValue with Product with Serializable

    Permalink

    A BSON binary value.

    A BSON binary value.

    value

    The binary content.

    subtype

    The type of the binary content.

  5. case class BSONBoolean(value: Boolean) extends BSONValue with Product with Serializable

    Permalink

    BSON boolean value

  6. sealed trait BSONBooleanLike extends AnyRef

    Permalink

    A BSON value that can be seen as a boolean.

    A BSON value that can be seen as a boolean.

    Conversions:

    • number = 0 ~> false
    • number != 0 ~> true
    • boolean
    • undefined ~> false
    • null ~> false
  7. sealed trait BSONBooleanLikeClass[B <: BSONValue] extends BSONBooleanLike

    Permalink
  8. class BSONBooleanLikeReader[B <: BSONValue] extends BSONReader[B, BSONBooleanLike]

    Permalink
    Definition Classes
    DefaultBSONHandlers
  9. case class BSONDBPointer(value: String, id: Array[Byte]) extends BSONValue with Product with Serializable

    Permalink

    BSON DBPointer value.

  10. case class BSONDateTime(value: Long) extends BSONValue with Product with Serializable

    Permalink

    BSON date time value

  11. case class BSONDocument(stream: Stream[Try[BSONElement]]) extends BSONValue with Product with Serializable

    Permalink

    A BSONDocument structure (BSON type 0x03).

    A BSONDocument structure (BSON type 0x03).

    A BSONDocument is basically a stream of tuples (String, BSONValue). It is completely lazy. The stream it wraps is a Stream[Try[(String, BSONValue)]] since we cannot be sure that a not yet deserialized value will be processed without error.

  12. trait BSONDocumentReader[T] extends BSONReader[BSONDocument, T]

    Permalink
  13. trait BSONDocumentWriter[T] extends BSONWriter[T, BSONDocument]

    Permalink
  14. case class BSONDouble(value: Double) extends BSONValue with Product with Serializable

    Permalink

    A BSON Double.

  15. type BSONElement = (String, BSONValue)

    Permalink

    Type of element for the BSON documents.

  16. trait BSONHandler[B <: BSONValue, T] extends BSONReader[B, T] with BSONWriter[T, B]

    Permalink
  17. case class BSONInteger(value: Int) extends BSONValue with Product with Serializable

    Permalink

    BSON Integer value

  18. case class BSONJavaScript(value: String) extends BSONValue with Product with Serializable

    Permalink

    BSON JavaScript value.

    BSON JavaScript value.

    value

    The JavaScript source code.

  19. case class BSONJavaScriptWS(value: String) extends BSONValue with Product with Serializable

    Permalink

    BSON scoped JavaScript value.

    BSON scoped JavaScript value.

    value

    The JavaScript source code. TODO

  20. case class BSONLong(value: Long) extends BSONValue with Product with Serializable

    Permalink

    BSON Long value

  21. sealed trait BSONNumberLike extends AnyRef

    Permalink

    A BSON value that can be seen as a number.

    A BSON value that can be seen as a number.

    Conversions:

  22. sealed trait BSONNumberLikeClass[B <: BSONValue] extends BSONNumberLike

    Permalink
  23. class BSONNumberLikeReader[B <: BSONValue] extends BSONReader[B, BSONNumberLike]

    Permalink
    Definition Classes
    DefaultBSONHandlers
  24. class BSONObjectID extends BSONValue with Serializable with Equals

    Permalink

    BSON ObjectId value.

    BSON ObjectId value.

    Annotations
    @SerialVersionUID()
  25. trait BSONReader[B <: BSONValue, T] extends AnyRef

    Permalink

    A reader that produces an instance of T from a subtype of BSONValue.

  26. case class BSONRegex(value: String, flags: String) extends BSONValue with Product with Serializable

    Permalink

    BSON Regex value.

    BSON Regex value.

    flags

    Regex flags.

  27. case class BSONString(value: String) extends BSONValue with Product with Serializable

    Permalink
  28. case class BSONSymbol(value: String) extends BSONValue with Product with Serializable

    Permalink

    BSON Symbol value.

  29. case class BSONTimestamp(value: Long) extends BSONValue with Product with Serializable

    Permalink

    BSON Timestamp value

  30. trait BSONValue extends AnyRef

    Permalink
  31. trait BSONWriter[T, B <: BSONValue] extends AnyRef

    Permalink

    A writer that produces a subtype of BSONValue fron an instance of T.

  32. trait DefaultBSONHandlers extends AnyRef

    Permalink
  33. abstract class IdentityBSONConverter[T <: BSONValue] extends BSONReader[T, T] with BSONWriter[T, T]

    Permalink
    Definition Classes
    DefaultBSONHandlers
  34. sealed trait Producer[T] extends AnyRef

    Permalink
  35. sealed trait Subtype extends AnyRef

    Permalink

    Binary Subtype

  36. sealed trait UnsafeBSONReader[T] extends AnyRef

    Permalink
  37. trait VariantBSONDocumentReader[+T] extends VariantBSONReader[BSONDocument, T]

    Permalink
  38. trait VariantBSONDocumentWriter[-T] extends VariantBSONWriter[T, BSONDocument]

    Permalink
  39. trait VariantBSONReader[-B <: BSONValue, +T] extends AnyRef

    Permalink

    A reader that produces an instance of T from a subtype of BSONValue.

  40. class VariantBSONReaderWrapper[B <: BSONValue, T] extends BSONReader[B, T]

    Permalink
  41. trait VariantBSONWriter[-T, +B <: BSONValue] extends AnyRef

    Permalink

    A writer that produces a subtype of BSONValue fron an instance of T.

  42. class VariantBSONWriterWrapper[T, B <: BSONValue] extends BSONWriter[T, B]

    Permalink

Value Members

  1. object BSON

    Permalink
  2. object BSONArray extends Serializable

    Permalink
  3. implicit object BSONArrayIdentity extends IdentityBSONConverter[BSONArray]

    Permalink
    Definition Classes
    DefaultBSONHandlers
  4. object BSONBinary extends Serializable

    Permalink
  5. implicit object BSONBinaryHandler extends BSONHandler[BSONBinary, Array[Byte]]

    Permalink
    Definition Classes
    DefaultBSONHandlers
  6. implicit object BSONBinaryIdentity extends IdentityBSONConverter[BSONBinary]

    Permalink
    Definition Classes
    DefaultBSONHandlers
  7. implicit object BSONBooleanHandler extends BSONHandler[BSONBoolean, Boolean]

    Permalink
    Definition Classes
    DefaultBSONHandlers
  8. implicit object BSONBooleanIdentity extends IdentityBSONConverter[BSONBoolean]

    Permalink
    Definition Classes
    DefaultBSONHandlers
  9. object BSONBooleanLike

    Permalink
  10. implicit object BSONBooleanLikeWriter extends VariantBSONWriter[BSONBooleanLike, BSONValue]

    Permalink
    Definition Classes
    DefaultBSONHandlers
  11. implicit object BSONDateTimeHandler extends BSONHandler[BSONDateTime, Date]

    Permalink
    Definition Classes
    DefaultBSONHandlers
  12. implicit object BSONDateTimeIdentity extends IdentityBSONConverter[BSONDateTime]

    Permalink
    Definition Classes
    DefaultBSONHandlers
  13. object BSONDocument extends Serializable

    Permalink
  14. implicit object BSONDocumentIdentity extends IdentityBSONConverter[BSONDocument] with BSONDocumentReader[BSONDocument] with BSONDocumentWriter[BSONDocument]

    Permalink
    Definition Classes
    DefaultBSONHandlers
  15. object BSONDocumentReader

    Permalink
  16. object BSONDocumentWriter

    Permalink
  17. implicit object BSONDoubleHandler extends BSONHandler[BSONDouble, Double]

    Permalink
    Definition Classes
    DefaultBSONHandlers
  18. implicit object BSONDoubleIdentity extends IdentityBSONConverter[BSONDouble]

    Permalink
    Definition Classes
    DefaultBSONHandlers
  19. object BSONHandler

    Permalink
  20. implicit object BSONIntegerHandler extends BSONHandler[BSONInteger, Int]

    Permalink
    Definition Classes
    DefaultBSONHandlers
  21. implicit object BSONIntegerIdentity extends IdentityBSONConverter[BSONInteger]

    Permalink
    Definition Classes
    DefaultBSONHandlers
  22. implicit object BSONJavaScriptIdentity extends BSONReader[BSONJavaScript, BSONJavaScript] with BSONWriter[BSONJavaScript, BSONJavaScript]

    Permalink
    Definition Classes
    DefaultBSONHandlers
  23. implicit object BSONLongHandler extends BSONHandler[BSONLong, Long]

    Permalink
    Definition Classes
    DefaultBSONHandlers
  24. implicit object BSONLongIdentity extends IdentityBSONConverter[BSONLong]

    Permalink
    Definition Classes
    DefaultBSONHandlers
  25. object BSONMaxKey extends BSONValue

    Permalink

    BSON Max key value

  26. object BSONMinKey extends BSONValue

    Permalink

    BSON Min key value

  27. object BSONNull extends BSONValue with Product with Serializable

    Permalink

    BSON null value

  28. implicit object BSONNullIdentity extends IdentityBSONConverter[BSONNull.type]

    Permalink
    Definition Classes
    DefaultBSONHandlers
  29. object BSONNumberLike

    Permalink
  30. implicit object BSONNumberLikeWriter extends VariantBSONWriter[BSONNumberLike, BSONValue]

    Permalink
    Definition Classes
    DefaultBSONHandlers
  31. object BSONObjectID extends Serializable

    Permalink
  32. implicit object BSONObjectIDIdentity extends IdentityBSONConverter[BSONObjectID]

    Permalink
    Definition Classes
    DefaultBSONHandlers
  33. object BSONReader

    Permalink
  34. implicit object BSONRegexIdentity extends IdentityBSONConverter[BSONRegex]

    Permalink
    Definition Classes
    DefaultBSONHandlers
  35. implicit object BSONStringHandler extends BSONHandler[BSONString, String]

    Permalink
    Definition Classes
    DefaultBSONHandlers
  36. implicit object BSONStringIdentity extends IdentityBSONConverter[BSONString]

    Permalink
    Definition Classes
    DefaultBSONHandlers
  37. object BSONTimestamp extends Serializable

    Permalink

    Timestamp companion

  38. object BSONUndefined extends BSONValue with Product with Serializable

    Permalink

    BSON Undefined value

  39. implicit object BSONUndefinedIdentity extends IdentityBSONConverter[BSONUndefined.type]

    Permalink
    Definition Classes
    DefaultBSONHandlers
  40. object BSONValue

    Permalink
  41. implicit object BSONValueIdentity extends IdentityBSONConverter[BSONValue]

    Permalink
    Definition Classes
    DefaultBSONHandlers
  42. object BSONWriter

    Permalink
  43. object DefaultBSONHandlers extends DefaultBSONHandlers

    Permalink
  44. object Macros

    Permalink

    Macros for generating BSONReader and BSONWriter implementations for case at compile time.

    Macros for generating BSONReader and BSONWriter implementations for case at compile time. Invoking these macros is equivalent to writing anonymous class implementations by hand.

    Example

    case class Person(name: String, surname: String)
    implicit val personHandler = Macros.handler[Person]

    Use reader to generate the BSONReader and writer for BSONWriter or handler for a class that extends both. Respective methods with 'Opts' appended take additional options in form of type parameters.

    The A type parameter defines case class that will be the basis for auto-generated implementation. Some other types with matching apply-unapply might work but behaviour is undefined. Since macros will match the apply-unapply pair you are free to overload these methods in the companion object.

    Fields in the case class get mapped into BSON properties with respective names and BSON handlers are pulled from implicit scope to (de)serialize them. In order to use custom types inside case classes just make sure appropriate handlers are in scope. Note that companion objects are searched too. For example if you have case class Foo(bar: Bar) and want to create a handler for it is enough to put an implicit handler for Bar in it's companion object. That handler might be macro generated or written by hand.

    Case classes can also be defined inside other classes, objects or traits but not inside functions(known limitation). In order to work you should have the case class in scope(where you call the macro) so you can refer to it by it's short name - without package. This is necessary because the generated implementations refer to it by the short name to support nested declarations. You can work around this with local imports.

    Example

    implicit val handler = {
      import some.package.Foo
      Macros.handler[Foo]
    }

    Option types are handled somewhat specially: a field of type Option[T] will only be appended to the document if it contains a value. Similarly if a document does not contain a value it will be read as None.

    Also supported neat trick are 'union types' that make for easy work with algebraic data types. See the UnionType option for more details.

    You can also create recursive structures by explicitly annotating types of the implicit handlers. (To let the compiler know they exist) Example

    sealed trait Tree
    case class Node(left: Tree, right: Tree) extends Tree
    case class Leaf(data: String) extends Tree
    
    object Tree {
      import Macros.Options._
      implicit val bson: Handler[Tree] = Macros.handlerOpts[Tree, UnionType[Node \/ Leaf]]
    }
    See also

    Macros.Options for specific options

  45. object Producer

    Permalink
  46. object Subtype

    Permalink
  47. def array(values: Producer[BSONValue]*): BSONArray

    Permalink

    Returns an array with given values.

  48. def array: BSONArray

    Permalink

    Returns an empty array.

  49. implicit def bsonArrayToCollectionReader[M[_], T](implicit cbf: CanBuildFrom[M[_], T, M[T]], reader: BSONReader[_ <: BSONValue, T]): BSONReader[BSONArray, M[T]]

    Permalink
    Definition Classes
    DefaultBSONHandlers
  50. implicit def bsonBooleanLikeReader[B <: BSONValue]: BSONBooleanLikeReader[B]

    Permalink
    Definition Classes
    DefaultBSONHandlers
  51. implicit def bsonNumberLikeReader[B <: BSONValue]: BSONNumberLikeReader[B]

    Permalink
    Definition Classes
    DefaultBSONHandlers
  52. package buffer

    Permalink
  53. implicit def collectionToBSONArrayCollectionWriter[T, Repr](implicit arg0: (Repr) ⇒ Traversable[T], writer: BSONWriter[T, _ <: BSONValue]): VariantBSONWriter[Repr, BSONArray]

    Permalink
    Definition Classes
    DefaultBSONHandlers
  54. def document(elements: Producer[BSONElement]*): BSONDocument

    Permalink

    Returns a document with given elements.

  55. def document: BSONDocument

    Permalink

    Returns an empty document.

  56. package exceptions

    Permalink
  57. implicit def findReader[T](implicit reader: VariantBSONReader[_ <: BSONValue, T]): BSONReader[_ <: BSONValue, T]

    Permalink
    Definition Classes
    DefaultBSONHandlers
  58. implicit def findWriter[T](implicit writer: VariantBSONWriter[T, _ <: BSONValue]): BSONWriter[T, _ <: BSONValue]

    Permalink
    Definition Classes
    DefaultBSONHandlers
  59. def generateId: BSONObjectID

    Permalink

    Returns a newly generated object ID.

  60. package lowlevel

    Permalink
  61. package utils

    Permalink

Inherited from DefaultBSONHandlers

Inherited from AnyRef

Inherited from Any

Ungrouped