class FDB::Subspace
def [](name)
def [](name) Subspace.new([name], @raw_prefix) end
def as_foundationdb_key
def as_foundationdb_key key end
def contains?(key)
def contains?(key) key.start_with? @raw_prefix end
def initialize(prefix_tuple=[], raw_prefix='')
def initialize(prefix_tuple=[], raw_prefix='') @raw_prefix = raw_prefix.dup.force_encoding('BINARY') + FDB::Tuple.pack(prefix_tuple) end
def key
def key @raw_prefix end
def pack(tuple)
def pack(tuple) @raw_prefix + FDB::Tuple.pack(tuple) end
def range(tuple=[])
def range(tuple=[]) rng = FDB::Tuple.range(tuple) [@raw_prefix + rng[0], @raw_prefix + rng[1]] end
def subspace(tuple)
def subspace(tuple) Subspace.new(tuple, @raw_prefix) end
def unpack(key)
def unpack(key) raise ArgumentError, 'Cannot unpack key that is not in subspace.' if not contains? key FDB::Tuple.unpack(key[@raw_prefix.length..-1]) end