Creates a BSONWriter based on the given write
function.
Creates a BSONWriter based on the given write
function.
This function is called within a scala.util.Try.
import reactivemongo.api.bson.{ BSONWriter, BSONString } case class Foo(value: String) val foo: BSONWriter[Foo] = BSONWriter { f: Foo => BSONString(f.value) }
Creates a BSONWriter based on the given partial function.
Creates a BSONWriter based on the given partial function.
A exceptions.ValueDoesNotMatchException is returned as Failure
for any value that is not matched by the write
function.
import reactivemongo.api.bson.{ BSONWriter, BSONInteger } val strCodeToIntWriter = BSONWriter.collect[String] { case "zero" => BSONInteger(0) case "one" => BSONInteger(1) } strCodeToIntWriter.writeTry("zero") // Success(BSONInteger(0)) strCodeToIntWriter.writeTry("one") // Success(BSONInteger(1)) strCodeToIntWriter.writeTry("3") // => Failure(ValueDoesNotMatchException(..)) strCodeToIntWriter.writeOpt("4") // None (as failed)
EXPERIMENTAL: Creates a BSONWriter based on the given
partially safe write
function.
EXPERIMENTAL: Creates a BSONWriter based on the given
partially safe write
function.
A exceptions.ValueDoesNotMatchException is returned as Failure
for any value that is not matched by the write
function.
import scala.util.Success import reactivemongo.api.bson.{ BSONWriter, BSONInteger } val strCodeToIntWriter = BSONWriter.collectFrom[String] { case "zero" => Success(BSONInteger(0)) case "one" => Success(BSONInteger(1)) } strCodeToIntWriter.writeTry("zero") // Success(BSONInteger(0)) strCodeToIntWriter.writeTry("one") // Success(BSONInteger(1)) strCodeToIntWriter.writeTry("3") // => Failure(IllegalArgumentException(..)) strCodeToIntWriter.writeOpt("4") // None (as failed)
Creates a BSONWriter based on the given safe write
function.
Creates a BSONWriter based on the given safe write
function.
import scala.util.{ Failure, Success } import reactivemongo.api.bson.{ BSONWriter, BSONInteger } val strCodeToIntWriter = BSONWriter.from[String] { case "zero" => Success(BSONInteger(0)) case "one" => Success(BSONInteger(1)) case _ => Failure(new IllegalArgumentException()) } strCodeToIntWriter.writeTry("zero") // Success(BSONInteger(0)) strCodeToIntWriter.writeTry("one") // Success(BSONInteger(1)) strCodeToIntWriter.writeTry("3") // => Failure(IllegalArgumentException(..)) strCodeToIntWriter.writeOpt("4") // None (as failed)
the safe function to write T
values as BSON
EXPERIMENTAL: (API may change without notice)
EXPERIMENTAL: (API may change without notice)
Creates a BSONWriter accepting only scala.collection.Iterable,
and applying the given safe write
function to each element value.
import reactivemongo.api.bson.{ BSONWriter, Macros } case class Element(str: String, v: Int) val elementHandler = Macros.handler[Element] val setWriter: BSONWriter[Set[Element]] = BSONWriter.iterable[Element, Set](elementHandler writeTry _)
Creates a BSONWriter based on the given write
function.
Creates a BSONWriter based on the given write
function.
import reactivemongo.api.bson.{ BSONWriter, BSONInteger } val strCodeToIntWriter = BSONWriter.option[String] { case "zero" => Some(BSONInteger(0)) case "one" => Some(BSONInteger(1)) case _ => None } strCodeToIntWriter.writeTry("zero") // Success(BSONInteger(0)) strCodeToIntWriter.writeTry("one") // Success(BSONInteger(1)) strCodeToIntWriter.writeTry("3") // => Failure(ValueDoesNotMatchException(..)) strCodeToIntWriter.writeOpt("4") // None (as failed)
EXPERIMENTAL: (API may change without notice)
EXPERIMENTAL: (API may change without notice)
Creates a BSONWriter accepting only scala.collection.Iterable,
and applying the given safe write
function to each element value.
import reactivemongo.api.bson.{ BSONWriter, Macros } case class Element(str: String, v: Int) val elementHandler = Macros.handler[Element] val seqWriter: BSONWriter[Seq[Element]] = BSONWriter.sequence[Element](elementHandler writeTry _)
EXPERIMENTAL: Creates a BSONWriter that creates tuple elements as BSONArray elements.
EXPERIMENTAL: Creates a BSONWriter that creates tuple elements as BSONArray elements.
import reactivemongo.api.bson.BSONWriter val writer = BSONWriter.tuple2[String, Int] writer.writeTry("Foo" -> 20) // => Success: ['Foo', 20]
EXPERIMENTAL: Creates a BSONWriter that creates tuple elements as BSONArray elements.
EXPERIMENTAL: Creates a BSONWriter that creates tuple elements as BSONArray elements.
EXPERIMENTAL: Creates a BSONWriter that creates tuple elements as BSONArray elements.
BSONWriter factories.