All Downloads are FREE. Search and download functionalities are using the official Maven repository.

me.archdev.foundationdb.namespaces.Subspace.scala Maven / Gradle / Ivy

The newest version!
package me.archdev.foundationdb.namespaces

import com.apple.foundationdb.subspace.{ Subspace => JavaSubspace }
import me.archdev.foundationdb.serializers._

case class Subspace(raw: JavaSubspace) {

  def pack[K: Tupler](key: K): Array[Byte] =
    raw.pack(key.toTuple)

  lazy val isEmpty: Boolean =
    raw.getKey.isEmpty

  override def hashCode: Int =
    raw.hashCode()

}

object Subspace {
  def apply() =
    new Subspace(new JavaSubspace())

  def apply(rawPrefix: Array[Byte]) =
    new Subspace(new JavaSubspace(rawPrefix))

  def apply[A](prefix: A)(implicit serializer: Tupler[A]) =
    new Subspace(new JavaSubspace(prefix.toTuple))

  def apply[A](prefix: A, rawPrefix: Array[Byte])(implicit serializer: Tupler[A]) =
    new Subspace(new JavaSubspace(prefix.toTuple, rawPrefix))
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy