mirror of
https://github.com/encounter/JSONAPI.git
synced 2026-03-30 11:18:38 -07:00
83 lines
1.6 KiB
Swift
83 lines
1.6 KiB
Swift
|
|
//
|
||
|
|
// OpenAPITypes.swift
|
||
|
|
// JSONAPI
|
||
|
|
//
|
||
|
|
// Created by Mathew Polzin on 1/13/19.
|
||
|
|
//
|
||
|
|
|
||
|
|
public protocol OpenAPITyped {
|
||
|
|
var openAPIType: OpenAPI.JSONTypeFormat { get }
|
||
|
|
}
|
||
|
|
|
||
|
|
public extension OpenAPI {
|
||
|
|
enum JSONType: String {
|
||
|
|
case boolean = "boolean"
|
||
|
|
case object = "object"
|
||
|
|
case array = "array"
|
||
|
|
case number = "number"
|
||
|
|
case integer = "integer"
|
||
|
|
case string = "string"
|
||
|
|
}
|
||
|
|
|
||
|
|
enum JSONTypeFormat: Equatable {
|
||
|
|
case boolean(BooleanFormat)
|
||
|
|
case object(ObjectFormat)
|
||
|
|
case array(ArrayFormat)
|
||
|
|
case number(NumberFormat)
|
||
|
|
case integer(IntegerFormat)
|
||
|
|
case string(StringFormat)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
public extension OpenAPI.JSONTypeFormat {
|
||
|
|
public enum BooleanFormat: String, Equatable, Codable {
|
||
|
|
case generic = ""
|
||
|
|
}
|
||
|
|
|
||
|
|
public enum ObjectFormat: String, Equatable, Codable {
|
||
|
|
case generic = ""
|
||
|
|
}
|
||
|
|
|
||
|
|
public enum ArrayFormat: String, Equatable, Codable {
|
||
|
|
case generic = ""
|
||
|
|
}
|
||
|
|
|
||
|
|
public enum NumberFormat: String, Equatable, Codable {
|
||
|
|
case generic = ""
|
||
|
|
case float = "float"
|
||
|
|
case double = "double"
|
||
|
|
}
|
||
|
|
|
||
|
|
public enum IntegerFormat: String, Equatable, Codable {
|
||
|
|
case generic = ""
|
||
|
|
case int32 = "int32"
|
||
|
|
case int64 = "int64"
|
||
|
|
}
|
||
|
|
|
||
|
|
public enum StringFormat: String, Equatable, Codable {
|
||
|
|
case generic = ""
|
||
|
|
case byte = "byte"
|
||
|
|
case binary = "binary"
|
||
|
|
case date = "date"
|
||
|
|
case dateTime = "date-time"
|
||
|
|
case password = "password"
|
||
|
|
}
|
||
|
|
|
||
|
|
public var type: OpenAPI.JSONType {
|
||
|
|
switch self {
|
||
|
|
case .boolean:
|
||
|
|
return .boolean
|
||
|
|
case .object:
|
||
|
|
return .object
|
||
|
|
case .array:
|
||
|
|
return .array
|
||
|
|
case .number:
|
||
|
|
return .number
|
||
|
|
case .integer:
|
||
|
|
return .integer
|
||
|
|
case .string:
|
||
|
|
return .string
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|