Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Sources/OpenAI/Public/JSONSchema/JSONDocument.swift
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ public protocol JSONDocument: Codable, Hashable, Sendable {
/// A JSON "null" value
struct JSONNullValue: JSONDocument {}
extension Int: JSONDocument {}
extension Double: JSONDocument {}
extension String: JSONDocument {}
extension Bool: JSONDocument {}
/// [number](https://json-schema.org/draft/2020-12/json-schema-core#section-4.2.1-3.10)
Expand Down
42 changes: 41 additions & 1 deletion Sources/OpenAI/Public/JSONSchema/JSONSchemaField.swift
Original file line number Diff line number Diff line change
Expand Up @@ -361,7 +361,15 @@ public struct JSONSchemaField {
/// ### Summary
/// A numeric instance is valid only if division by this keyword’s value results in an integer.
public static func multipleOf(_ value: Decimal) -> JSONSchemaField {
.init(keyword: "maximum", value: .init(value))
.init(keyword: "multipleOf", value: .init(value))
}

public static func multipleOf(_ value: Double) -> JSONSchemaField {
.init(keyword: "multipleOf", value: .init(value))
}

public static func multipleOf(_ value: Int) -> JSONSchemaField {
.init(keyword: "multipleOf", value: .init(value))
}

/// ### Kind
Expand All @@ -375,6 +383,14 @@ public struct JSONSchemaField {
public static func maximum(_ value: Decimal) -> JSONSchemaField {
.init(keyword: "maximum", value: .init(value))
}

public static func maximum(_ value: Double) -> JSONSchemaField {
.init(keyword: "maximum", value: .init(value))
}

public static func maximum(_ value: Int) -> JSONSchemaField {
.init(keyword: "maximum", value: .init(value))
}

/// ### Kind
/// Assertion
Expand All @@ -387,6 +403,14 @@ public struct JSONSchemaField {
public static func exclusiveMaximum(_ value: Decimal) -> JSONSchemaField {
.init(keyword: "exclusiveMaximum", value: .init(value))
}

public static func exclusiveMaximum(_ value: Double) -> JSONSchemaField {
.init(keyword: "exclusiveMaximum", value: .init(value))
}

public static func exclusiveMaximum(_ value: Int) -> JSONSchemaField {
.init(keyword: "exclusiveMaximum", value: .init(value))
}

/// ### Kind
/// Assertion
Expand All @@ -399,6 +423,14 @@ public struct JSONSchemaField {
public static func minimum(_ value: Decimal) -> JSONSchemaField {
.init(keyword: "minimum", value: .init(value))
}

public static func minimum(_ value: Double) -> JSONSchemaField {
.init(keyword: "minimum", value: .init(value))
}

public static func minimum(_ value: Int) -> JSONSchemaField {
.init(keyword: "minimum", value: .init(value))
}

/// ### Kind
/// Assertion
Expand All @@ -411,6 +443,14 @@ public struct JSONSchemaField {
public static func exclusiveMinimum(_ value: Decimal) -> JSONSchemaField {
.init(keyword: "exclusiveMinimum", value: .init(value))
}

public static func exclusiveMinimum(_ value: Double) -> JSONSchemaField {
.init(keyword: "exclusiveMinimum", value: .init(value))
}

public static func exclusiveMinimum(_ value: Int) -> JSONSchemaField {
.init(keyword: "exclusiveMinimum", value: .init(value))
}

// MARK: Validation Keywords for Strings
// https://json-schema.org/draft/2020-12/json-schema-validation#name-validation-keywords-for-str
Expand Down