0001    //
0002    //  String+Misc.swift
0003    //  Swifter
0004    //
0005    //  Copyright (c) 2014-2016 Damian KoĊ‚akowski. All rights reserved.
0006    //
0007    
0008    #if os(Linux)
0009        import Glibc
0010    #else
0011        import Foundation
0012    #endif
0013    
0014    extension String {
0015    
0016        public func split
HttpHandlers+Files.swift:58
                let rangeStringExploded = rangeString.split("-")
HttpParser.swift:24
        let statusLineTokens = statusLine.split(" ")
HttpParser.swift:40
        guard let query = url.split("?").last else {
HttpParser.swift:43
        return query.split("&").reduce([(String, String)]()) { (c, s) -> [(String, String)] in
HttpRequest.swift:24
        return headerValue.split(",").filter({ $0.trim().lowercaseString == token }).count > 0
HttpRequest.swift:31
        let contentTypeHeaderTokens = contentTypeHeader.split(";").map { $0.trim() }
HttpRequest.swift:35
        return String.fromUInt8(body).split("&").map { param -> (String, String) in
HttpRequest.swift:36
            let tokens = param.split("=")
HttpRequest.swift:63
                let headerValueParams = header.value.split(";").map { $0.trim() }
HttpRequest.swift:79
        let contentTypeHeaderTokens = contentTypeHeader.split(";").map { $0.trim() }
HttpRequest.swift:85
            let tokens = $0.split("=")
HttpRequest.swift:115
            let tokens = line.split(":")
HttpRouter.swift:39
        var pathSegments = stripQuery(path).split("/")
HttpRouter.swift:51
            let pathSegments = (method + "/" + stripQuery(path)).split("/")
HttpRouter.swift:58
        let pathSegments = ("*/" + stripQuery(path)).split("/")
HttpRouter.swift:109
        if let path = path.split("?").first {
(separator: Character) -> [String] { 0017 return self.characters.split { $0 == separator }.map(String.init) 0018 } 0019 0020 public func split
HttpParser.swift:44
            let tokens = s.split(1, separator: "=")
HttpParser.swift:65
            let headerTokens = headerLine.split(1, separator: ":")
HttpRequest.swift:65
                    let parameterTokens = token.split(1, separator: "=")
(maxSplit: Int = Int.max, separator: Character) -> [String] { 0021 return self.characters.split(maxSplit) { $0 == separator }.map(String.init) 0022 } 0023 0024 public func replace
HttpRequest.swift:38
                return (name.replace("+", " ").removePercentEncoding(),
HttpRequest.swift:39
                        value.replace("+", " ").removePercentEncoding())
(old: Character, _ new: Character) -> String { 0025 var buffer = [Character]() 0026 self.characters.forEach { buffer.append($0 == old ? new : $0) } 0027 return String(buffer) 0028 } 0029 0030 public func unquote
HttpRequest.swift:51
            return valueFor("content-disposition", parameter: "name")?.unquote()
HttpRequest.swift:55
            return valueFor("content-disposition", parameter: "filename")?.unquote()
() -> String { 0031 var scalars = self.unicodeScalars; 0032 if scalars.first == "\"" && scalars.last == "\"" && scalars.count >= 2 { 0033 scalars.removeFirst(); 0034 scalars.removeLast(); 0035 return String(scalars) 0036 } 0037 return self 0038 } 0039 0040 public func trim
HttpParser.swift:67
                headers[name.lowercaseString] = value.trim()
HttpParser.swift:74
            return "keep-alive" == value.trim()
HttpRequest.swift:24
        return headerValue.split(",").filter({ $0.trim().lowercaseString == token }).count > 0
HttpRequest.swift:31
        let contentTypeHeaderTokens = contentTypeHeader.split(";").map { $0.trim() }
HttpRequest.swift:63
                let headerValueParams = header.value.split(";").map { $0.trim() }
HttpRequest.swift:79
        let contentTypeHeaderTokens = contentTypeHeader.split(";").map { $0.trim() }
HttpRequest.swift:117
                headers[name.lowercaseString] = value.trim()
() -> String { 0041 var scalars = self.unicodeScalars 0042 while let _ = scalars.first?.asWhitespace() { scalars.removeFirst() } 0043 while let _ = scalars.last?.asWhitespace() { scalars.removeLast() } 0044 return String(scalars) 0045 } 0046 0047 public static func fromUInt8
HttpHandlers+WebSockets.swift:31
                            handleText(session, String.fromUInt8(frame.payload))
HttpRequest.swift:35
        return String.fromUInt8(body).split("&").map { param -> (String, String) in
String+BASE64.swift:48
        return String.fromUInt8(result)
String+Misc.swift:64
                        output.appendContentsOf(String.fromUInt8(decodeBuffer))
String+Misc.swift:72
                    output.appendContentsOf(String.fromUInt8(decodeBuffer))
String+Misc.swift:79
            output.appendContentsOf(String.fromUInt8(decodeBuffer))
(array: [UInt8]) -> String { 0048 // Apple changes the definition of String(data: .... ) every release so let's stay with 'fromUInt8(...)' wrapper. 0049 return array.reduce("", combine: { $0.0 + String(UnicodeScalar($0.1)) }) 0050 } 0051 0052 public func removePercentEncoding
HttpParser.swift:46
                return c + [(name.removePercentEncoding(), value.removePercentEncoding())]
HttpParser.swift:46
                return c + [(name.removePercentEncoding(), value.removePercentEncoding())]
HttpRequest.swift:38
                return (name.replace("+", " ").removePercentEncoding(),
HttpRequest.swift:39
                        value.replace("+", " ").removePercentEncoding())
() -> String { 0053 var scalars = self.unicodeScalars 0054 var output = "" 0055 var decodeBuffer = [UInt8]() 0056 while let scalar = scalars.popFirst() { 0057 if scalar == "%" { 0058 let first = scalars.popFirst() 0059 let secon = scalars.popFirst() 0060 if let first = first?.asAlpha(), secon = secon?.asAlpha() { 0061 decodeBuffer.append(first*16+secon) 0062 } else { 0063 if !decodeBuffer.isEmpty { 0064 output.appendContentsOf(String.fromUInt8(decodeBuffer)) 0065 decodeBuffer.removeAll() 0066 } 0067 if let first = first { output.append(Character(first)) } 0068 if let secon = secon { output.append(Character(secon)) } 0069 } 0070 } else { 0071 if !decodeBuffer.isEmpty { 0072 output.appendContentsOf(String.fromUInt8(decodeBuffer)) 0073 decodeBuffer.removeAll() 0074 } 0075 output.append(Character(scalar)) 0076 } 0077 } 0078 if !decodeBuffer.isEmpty { 0079 output.appendContentsOf(String.fromUInt8(decodeBuffer)) 0080 decodeBuffer.removeAll() 0081 } 0082 return output 0083 } 0084 } 0085 0086 extension UnicodeScalar { 0087 0088 public func asWhitespace
String+Misc.swift:42
        while let _ = scalars.first?.asWhitespace() { scalars.removeFirst() }
String+Misc.swift:43
        while let _ = scalars.last?.asWhitespace() { scalars.removeLast() }
() -> UInt8? { 0089 if self.value >= 9 && self.value <= 13 { 0090 return UInt8(self.value) 0091 } 0092 if self.value == 32 { 0093 return UInt8(self.value) 0094 } 0095 return nil 0096 } 0097 0098 public func asAlpha
String+Misc.swift:60
                if let first = first?.asAlpha(), secon = secon?.asAlpha() {
String+Misc.swift:60
                if let first = first?.asAlpha(), secon = secon?.asAlpha() {
() -> UInt8? { 0099 if self.value >= 48 && self.value <= 57 { 0100 return UInt8(self.value) - 48 0101 } 0102 if self.value >= 97 && self.value <= 102 { 0103 return UInt8(self.value) - 87 0104 } 0105 if self.value >= 65 && self.value <= 70 { 0106 return UInt8(self.value) - 55 0107 } 0108 return nil 0109 } 0110 } 0111