[ 
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)

Reply via email to