Class: LLM::Schema::OneOf

Inherits:
Leaf
  • Object
show all
Defined in:
lib/llm/schema/one_of.rb

Overview

The LLM::Schema::OneOf class represents an oneOf union in a JSON schema. It is a subclass of LLM::Schema::Leaf.

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Leaf

#==, #const, #default, #description, #enum, #optional, #optional?, #required, #required?, #to_json

Constructor Details

#initialize(values) ⇒ LLM::Schema::OneOf

Parameters:



21
22
23
# File 'lib/llm/schema/one_of.rb', line 21

def initialize(values)
  @values = values
end

Class Method Details

.[](*types) ⇒ LLM::Schema::OneOf

Returns a oneOf union for the given types.

Returns:



12
13
14
15
# File 'lib/llm/schema/one_of.rb', line 12

def self.[](*types)
  schema = LLM::Schema.new
  new(types.map { LLM::Schema::Utils.resolve(schema, _1) })
end

Instance Method Details

#to_hHash

Returns:

  • (Hash)


27
28
29
# File 'lib/llm/schema/one_of.rb', line 27

def to_h
  super.merge!(oneOf: @values)
end