[
https://issues.apache.org/jira/browse/THRIFT-3773?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15765970#comment-15765970
]
ASF GitHub Bot commented on THRIFT-3773:
----------------------------------------
Github user nsuke commented on a diff in the pull request:
https://github.com/apache/thrift/pull/1084#discussion_r93366730
--- Diff: lib/swift/Sources/TProtocolError.swift ---
@@ -0,0 +1,146 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements. See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership. The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied. See the License for the
+* specific language governing permissions and limitations
+* under the License.
+*/
+
+import Foundation
+
+public struct TProtocolError : TError {
+ public init() { }
+
+ public enum Code : TErrorCode {
+ case unknown
+ case invalidData
+ case negativeSize
+ case sizeLimit(limit: Int, got: Int)
+ case badVersion(expected: String, got: String)
+ case notImplemented
+ case depthLimit
+
+ public var thriftErrorCode: Int {
+ switch self {
+ case .unknown: return 0
+ case .invalidData: return 1
+ case .negativeSize: return 2
+ case .sizeLimit: return 3
+ case .badVersion: return 4
+ case .notImplemented: return 5
+ case .depthLimit: return 6
+ }
+
+ }
+ public var description: String {
+ switch self {
+ case .unknown: return "Unknown TProtocolError"
+ case .invalidData: return "Invalid Data"
+ case .negativeSize: return "Negative Size"
+ case .sizeLimit(let limit, let got):
+ return "Message exceeds size limit of \(limit) (received: \(got)"
+ case .badVersion(let expected, let got):
+ return "Bad Version. (Expected: \(expected), Got: \(got)"
+ case .notImplemented: return "Not Implemented"
+ case .depthLimit: return "Depth Limit"
+ }
+ }
+ }
+
+ public enum ExtendedErrorCode : TErrorCode {
+ case unknown
+ case missingRequiredField(fieldName: String)
+ case unexpectedType(type: TType)
+ case mismatchedProtocol(expected: String, got: String)
+ public var thriftErrorCode: Int {
+ switch self {
+ case .unknown: return 1001
+ case .missingRequiredField: return 1002
+ case .unexpectedType: return 1003
+ case .mismatchedProtocol: return 1003
--- End diff --
The last two values seems in conflict.
> Swift Library
> -------------
>
> Key: THRIFT-3773
> URL: https://issues.apache.org/jira/browse/THRIFT-3773
> Project: Thrift
> Issue Type: New Feature
> Components: Swift - Library
> Reporter: Thomas Bartelmess
> Assignee: Chris Simpson
>
> We already have the option to generate Swift code in the Cocoa compiler,
> however large parts of the (Objective-C) Cocoa Library still depend on Cocoa
> and Objective-C.
> It would be good to have a native Swift library that doesn't depend on the
> Cocoa libraries.
> Design goals:
> - Fully compatible with the code that is currently generated by the Cocoa
> compiler (both Objective-C and Swift).
> - Ability to run on Linux
> - Pure Swift, no Objective-C code.
> - No dependencies on closed source apple libraries
> - Keep the same interface, so that the library is compatible with the code
> the current cocoa compiler generates
> - Better server support that the current Objective-C library.
> - Follow the new Swift packaging format to be compatible with the Swift
> Package manager
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)