Class: Pgvector::Bit

Inherits:
Object
  • Object
show all
Defined in:
lib/pgvector/bit.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(data) ⇒ Bit

Returns a new instance of Bit.



3
4
5
6
7
8
9
# File 'lib/pgvector/bit.rb', line 3

def initialize(data)
  if data.is_a?(Array)
    @data = data.map { |v| v ? "1" : "0" }.join
  else
    @data = data.to_str
  end
end

Class Method Details

.from_binary(string) ⇒ Object



15
16
17
18
# File 'lib/pgvector/bit.rb', line 15

def self.from_binary(string)
  length, data = string.unpack("l>B*")
  Bit.new(data[...length])
end

.from_text(string) ⇒ Object



11
12
13
# File 'lib/pgvector/bit.rb', line 11

def self.from_text(string)
  Bit.new(string)
end

Instance Method Details

#to_aObject



24
25
26
# File 'lib/pgvector/bit.rb', line 24

def to_a
  @data.each_char.map { |v| v != "0" }
end

#to_binaryObject



28
29
30
# File 'lib/pgvector/bit.rb', line 28

def to_binary
  [@data.length, @data].pack("l>B*")
end

#to_sObject



20
21
22
# File 'lib/pgvector/bit.rb', line 20

def to_s
  @data
end