lib/turbopuffer/models/row.rb
# frozen_string_literal: true module Turbopuffer module Models class Row < Turbopuffer::Internal::Type::BaseModel # @!attribute id # An identifier for a document. # # @return [String, Integer] required :id, union: -> { Turbopuffer::ID } # @!attribute vector # A vector embedding associated with a document. # # @return [Array<Float>, String, nil] optional :vector, union: -> { Turbopuffer::Vector } # @!method initialize(id:, vector: nil) # A single document, in a row-based format. # # @param id [String, Integer] An identifier for a document. # # @param vector [Array<Float>, String] A vector embedding associated with a document. def method_missing(name, *args, &block) if @data.key?(name) @data[name] else super end end def respond_to_missing?(name, include_private = false) @data.key?(name) || super end def []=(key, value) unless key.instance_of?(Symbol) raise ArgumentError.new("Expected symbol key for set, got #{key.inspect}") end @data[key] = value end end end end