| 1 | 
           efrain | 
           1 | 
           //
  | 
        
        
            | 
            | 
           2 | 
           //  StringEncoding+Alamofire.swift
  | 
        
        
            | 
            | 
           3 | 
           //
  | 
        
        
            | 
            | 
           4 | 
           //  Copyright (c) 2020 Alamofire Software Foundation (http://alamofire.org/)
  | 
        
        
            | 
            | 
           5 | 
           //
  | 
        
        
            | 
            | 
           6 | 
           //  Permission is hereby granted, free of charge, to any person obtaining a copy
  | 
        
        
            | 
            | 
           7 | 
           //  of this software and associated documentation files (the "Software"), to deal
  | 
        
        
            | 
            | 
           8 | 
           //  in the Software without restriction, including without limitation the rights
  | 
        
        
            | 
            | 
           9 | 
           //  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  | 
        
        
            | 
            | 
           10 | 
           //  copies of the Software, and to permit persons to whom the Software is
  | 
        
        
            | 
            | 
           11 | 
           //  furnished to do so, subject to the following conditions:
  | 
        
        
            | 
            | 
           12 | 
           //
  | 
        
        
            | 
            | 
           13 | 
           //  The above copyright notice and this permission notice shall be included in
  | 
        
        
            | 
            | 
           14 | 
           //  all copies or substantial portions of the Software.
  | 
        
        
            | 
            | 
           15 | 
           //
  | 
        
        
            | 
            | 
           16 | 
           //  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  | 
        
        
            | 
            | 
           17 | 
           //  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  | 
        
        
            | 
            | 
           18 | 
           //  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  | 
        
        
            | 
            | 
           19 | 
           //  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  | 
        
        
            | 
            | 
           20 | 
           //  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  | 
        
        
            | 
            | 
           21 | 
           //  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  | 
        
        
            | 
            | 
           22 | 
           //  THE SOFTWARE.
  | 
        
        
            | 
            | 
           23 | 
           //
  | 
        
        
            | 
            | 
           24 | 
              | 
        
        
            | 
            | 
           25 | 
           import Foundation
  | 
        
        
            | 
            | 
           26 | 
              | 
        
        
            | 
            | 
           27 | 
           extension String.Encoding {
  | 
        
        
            | 
            | 
           28 | 
               /// Creates an encoding from the IANA charset name.
  | 
        
        
            | 
            | 
           29 | 
               ///
  | 
        
        
            | 
            | 
           30 | 
               /// - Notes: These mappings match those [provided by CoreFoundation](https://opensource.apple.com/source/CF/CF-476.18/CFStringUtilities.c.auto.html)
  | 
        
        
            | 
            | 
           31 | 
               ///
  | 
        
        
            | 
            | 
           32 | 
               /// - Parameter name: IANA charset name.
  | 
        
        
            | 
            | 
           33 | 
               init?(ianaCharsetName name: String) {
  | 
        
        
            | 
            | 
           34 | 
                   switch name.lowercased() {
  | 
        
        
            | 
            | 
           35 | 
                   case "utf-8":
  | 
        
        
            | 
            | 
           36 | 
                       self = .utf8
  | 
        
        
            | 
            | 
           37 | 
                   case "iso-8859-1":
  | 
        
        
            | 
            | 
           38 | 
                       self = .isoLatin1
  | 
        
        
            | 
            | 
           39 | 
                   case "unicode-1-1", "iso-10646-ucs-2", "utf-16":
  | 
        
        
            | 
            | 
           40 | 
                       self = .utf16
  | 
        
        
            | 
            | 
           41 | 
                   case "utf-16be":
  | 
        
        
            | 
            | 
           42 | 
                       self = .utf16BigEndian
  | 
        
        
            | 
            | 
           43 | 
                   case "utf-16le":
  | 
        
        
            | 
            | 
           44 | 
                       self = .utf16LittleEndian
  | 
        
        
            | 
            | 
           45 | 
                   case "utf-32":
  | 
        
        
            | 
            | 
           46 | 
                       self = .utf32
  | 
        
        
            | 
            | 
           47 | 
                   case "utf-32be":
  | 
        
        
            | 
            | 
           48 | 
                       self = .utf32BigEndian
  | 
        
        
            | 
            | 
           49 | 
                   case "utf-32le":
  | 
        
        
            | 
            | 
           50 | 
                       self = .utf32LittleEndian
  | 
        
        
            | 
            | 
           51 | 
                   default:
  | 
        
        
            | 
            | 
           52 | 
                       return nil
  | 
        
        
            | 
            | 
           53 | 
                   }
  | 
        
        
            | 
            | 
           54 | 
               }
  | 
        
        
            | 
            | 
           55 | 
           }
  |