42 lines
702 B
Swift
42 lines
702 B
Swift
//
|
|
// URLConvertible.swift
|
|
// OAuthSwift
|
|
//
|
|
// Created by Arman Arutyunov on 07/02/2019.
|
|
// Copyright © 2019 Dongri Jin. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
/// Either a String representing URL or a URL itself
|
|
public protocol URLConvertible {
|
|
var string: String { get }
|
|
var url: URL? { get }
|
|
}
|
|
|
|
extension String: URLConvertible {
|
|
public var string: String {
|
|
return self
|
|
}
|
|
|
|
public var url: URL? {
|
|
return URL(string: self)
|
|
}
|
|
}
|
|
|
|
extension URL: URLConvertible {
|
|
public var string: String {
|
|
return absoluteString
|
|
}
|
|
|
|
public var url: URL? {
|
|
return self
|
|
}
|
|
}
|
|
|
|
extension URLConvertible {
|
|
public var encodedURL: URL {
|
|
return URL(string: self.string.urlEncoded)!
|
|
}
|
|
}
|