BSONHandler

reactivemongo.api.bson.BSONHandler
See theBSONHandler companion trait
object BSONHandler

BSONHandler factories

Attributes

Companion
trait
Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Members list

Value members

Concrete methods

def apply[T](read: BSONValue => T, write: T => BSONValue): BSONHandler[T]

Handler factory.

Handler factory.

import reactivemongo.api.bson.{ BSONHandler, BSONString }

case class Foo(value: String)

val foo: BSONHandler[Foo] = BSONHandler(
 { _ => Foo("value") },
 { (f: Foo) => BSONString(f.value) }
)

Attributes

Creates a BSONHandler based on the given read and write functions.

Creates a BSONHandler based on the given read and write functions.

import reactivemongo.api.bson.{ BSONHandler, BSONInteger }

val intToStrCodeHandler = BSONHandler.collect[String](
 read = {
   case BSONInteger(0) => "zero"
   case BSONInteger(1) => "one"
 },
 write = {
   case "zero" => BSONInteger(0)
   case "one" => BSONInteger(1)
 })

intToStrCodeHandler.readTry(BSONInteger(0)) // Success("zero")
intToStrCodeHandler.readOpt(BSONInteger(3)) // None (as failed)

intToStrCodeHandler.writeTry("one") // Success(BSONInteger(1))
intToStrCodeHandler.writeOpt("3") // None (as failed)

Attributes

def from[T](read: BSONValue => Try[T], write: T => Try[BSONValue]): BSONHandler[T]

Returns a BSON handler for a type T, from the given safe read and write functions.

Returns a BSON handler for a type T, from the given safe read and write functions.

import scala.util.{ Failure, Success }
import reactivemongo.api.bson.{ BSONHandler, BSONInteger }

case class Foo(age: Int)

val handler: BSONHandler[Foo] = BSONHandler.from[Foo](
 read = {
   case BSONInteger(age) => Success(Foo(age))
   case _ => Failure(new IllegalArgumentException())
 },
 write = { foo => Success(BSONInteger(foo.age)) })

Attributes

def option[T](read: BSONValue => Option[T], write: T => Option[BSONValue]): BSONHandler[T]

Creates a BSONHandler based on the given read and write functions.

Creates a BSONHandler based on the given read and write functions.

import reactivemongo.api.bson.{ BSONHandler, BSONInteger }

val intToStrCodeHandler = BSONHandler.option[String](
 read = {
   case BSONInteger(0) => Some("zero")
   case BSONInteger(1) => Some("one")
   case _ => None
 },
 write = {
   case "zero" => Some(BSONInteger(0))
   case "one" => Some(BSONInteger(1))
   case _ => None
 })

intToStrCodeHandler.readTry(BSONInteger(0)) // Success("zero")
intToStrCodeHandler.readOpt(BSONInteger(3)) // None (as failed)

intToStrCodeHandler.writeTry("one") // Success(BSONInteger(1))
intToStrCodeHandler.writeOpt("3") // None (as failed)

Attributes

Givens

Inherited givens

Attributes

Inherited from:
BSONHandlerInstances (hidden)

Attributes

Inherited from:
BSONHandlerInstances (hidden)

Attributes

Inherited from:
BSONHandlerInstances (hidden)

Attributes

Inherited from:
BSONHandlerInstances (hidden)
given dateTimeHandler: BSONHandler[Instant]

Attributes

Inherited from:
BSONHandlerInstances (hidden)

Attributes

Inherited from:
BSONHandlerInstances (hidden)

Attributes

Inherited from:
BSONHandlerInstances (hidden)

Attributes

Inherited from:
BSONHandlerInstances (hidden)

Attributes

Inherited from:
BSONHandlerInstances (hidden)
given localDateHandler: BSONHandler[LocalDate]

Attributes

Inherited from:
BSONHandlerInstances (hidden)
given localDateTimeHandler: BSONHandler[LocalDateTime]

Attributes

Inherited from:
BSONHandlerInstances (hidden)
given localTimeHandler: BSONHandler[LocalTime]

Attributes

Inherited from:
BSONHandlerInstances (hidden)
given localeHandler: BSONHandler[Locale]

Attributes

Inherited from:
BSONHandlerInstances (hidden)

Attributes

Inherited from:
BSONHandlerInstances (hidden)
given offsetDateTimeHandler: BSONHandler[OffsetDateTime]

Attributes

Inherited from:
BSONHandlerInstances (hidden)

Attributes

Inherited from:
BSONHandlerInstances (hidden)

Attributes

Inherited from:
BSONHandlerInstances (hidden)
given uriHandler: BSONHandler[URI]

Attributes

Inherited from:
BSONHandlerInstances (hidden)
given urlHandler: BSONHandler[URL]

Attributes

Inherited from:
BSONHandlerInstances (hidden)
given uuidHandler: BSONHandler[UUID]

Attributes

Inherited from:
BSONHandlerInstances (hidden)
given zonedDateTimeHandler: BSONHandler[ZonedDateTime]

Attributes

Inherited from:
BSONHandlerInstances (hidden)

Implicits

Implicits

implicit def provided[T](implicit reader: BSONReader[T], writer: BSONWriter[T]): BSONHandler[T]

Returns a BSON handler for a type T, provided there are a writer and a reader for it.

Returns a BSON handler for a type T, provided there are a writer and a reader for it.

import reactivemongo.api.bson.{ BSONHandler, BSONReader, BSONWriter }

def foo[T](
 implicit r: BSONReader[T], w: BSONWriter[T]): BSONHandler[T] =
 BSONHandler.provided[T]

Attributes

Exports

Inherited defined exports

final val BSONValueIdentity: BSONIdentityLowPriorityHandlers.this.BSONValueIdentity
Exported from BSONIdentityLowPriorityHandlers

Attributes

Inherited from:
BSONHandlerInstances (hidden)