diff --git a/Sources/OpenAI/Public/JSONSchema/JSONDocument.swift b/Sources/OpenAI/Public/JSONSchema/JSONDocument.swift index 10371806..f91af87e 100644 --- a/Sources/OpenAI/Public/JSONSchema/JSONDocument.swift +++ b/Sources/OpenAI/Public/JSONSchema/JSONDocument.swift @@ -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) diff --git a/Sources/OpenAI/Public/JSONSchema/JSONSchemaField.swift b/Sources/OpenAI/Public/JSONSchema/JSONSchemaField.swift index 1a36c388..71325a91 100644 --- a/Sources/OpenAI/Public/JSONSchema/JSONSchemaField.swift +++ b/Sources/OpenAI/Public/JSONSchema/JSONSchemaField.swift @@ -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 @@ -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 @@ -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 @@ -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 @@ -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