Provides an instance of CellDecoder[Either[A, B]] for any type A and B that have instances of
CellDecoder.
Provides an instance of CellDecoder[Either[A, B]] for any type A and B that have instances of
CellDecoder.
Strings that can be decoded as the first type are returned as Left:
scala> CellDecoder[Either[Int, Boolean]].decode("123") res1: DecodeResult[Either[Int, Boolean]] = Success(Left(123))
Strings that cannot be decoded as the first type, but can as the second, are returned as Right:
scala> CellDecoder[Either[Int, Boolean]].decode("true") res2: DecodeResult[Either[Int, Boolean]] = Success(Right(true))
Provides an instance of CellDecoder[Option[A]] for any type A that has an instance of CellDecoder.
Provides an instance of CellDecoder[Option[A]] for any type A that has an instance of CellDecoder.
Non-empty strings are decoded as Some:
scala> CellDecoder[Option[Int]].decode("123") res1: DecodeResult[Option[Int]] = Success(Some(123))
Empty strings are decoded as None:
scala> CellDecoder[Option[Int]].decode("") res1: DecodeResult[Option[Int]] = Success(None)
Provides an instance of CellEncoder[Option[A]] for any type A that has an instance of CellEncoder.
Provides an instance of CellEncoder[Option[A]] for any type A that has an instance of CellEncoder.
Some are encoded like the value they contain:
scala> CellEncoder[Option[Int]].encode(Some(123)) res1: String = 123
Non are encoded as the empty string:
scala> CellEncoder[Option[Int]].encode(None) res2: String = ""
Provides an instance of CellEncoder[Either[A, B]] for any type A and B that have instances of
CellEncoder.
Provides an instance of CellEncoder[Either[A, B]] for any type A and B that have instances of
CellEncoder.
Left are encoded as the value they contain:
scala> CellEncoder[Either[Int, Boolean]].encode(Left(123)) res1: String = 123
So are Right:
scala> CellEncoder[Either[Int, Boolean]].encode(Right(true)) res2: String = true
Turns existing StringDecoder instances into CellDecoder ones.
Turns existing StringDecoder instances into CellDecoder ones.
This provides support for most basic Scala types - Int, for example:
CellDecoder[Int].decode("123") res1: DecodeResult[Option[Int]] = Success(Some(123))
Turns existing StringEncoder instances into CellEncoder ones.
Turns existing StringEncoder instances into CellEncoder ones.
This provides support for most basic Scala types - Int, for example:
CellEncoder[Int].encode(123) res1: String = 123
All default CellCodec instances.