Supported Datatypes
fs2-cassandra makes use of shapeless’s tags to define custom types. Find below the current supported types:
Base Types
| Scala |
Cassandra |
| Int |
int |
| Long |
bigint |
| String |
varchar |
| String @@ Ascii |
ascii |
| Float |
float |
| Double |
double |
| BigDecimal |
decimal |
| BigInt |
varint |
| Chunk[Byte] |
blob |
| UUID |
uuid |
| UUID @@ Type1 |
timeuuid |
| FiniteDuration |
bigint |
| InetAddress |
inet |
| Enumeration |
varchar |
Collections and others
| Scala |
Cassandra |
| List |
list |
| Vector |
list |
| Seq |
list |
| Set |
set |
| Map[K, V] |
map<k, v> |
| Tuple2[A, B] |
frozen<tuple<a, b» |
| Tuple3[A, B, C] |
frozen<tuple<a, b, c» |
Example
import java.net.InetAddress
import java.util.UUID
import fs2.Chunk
import shapeless.tag._
import spinoco.fs2.cassandra.CType.{Ascii, Type1}
import scala.concurrent.duration.FiniteDuration
object TestEnumeration extends Enumeration {
val One, Two, Three = Value
}
case class SimpleTableRow(
intColumn: Int
, longColumn: Long
, stringColumn: String
, asciiColumn: String @@ Ascii
, floatColumn: Float
, doubleColumn: Double
, bigDecimalColumn: BigDecimal
, bigIntColumn: BigInt
, blobColumn: Chunk[Byte]
, uuidColumn: UUID
, timeUuidColumn: UUID @@ Type1
, durationColumn: FiniteDuration
, inetAddressColumn: InetAddress
, enumColumn: TestEnumeration.Value
)