vapor leaf TemplateData擴展

extension Dictionary{
  public  func toTempData()->TemplateData{
        var container:Dictionary<String, TemplateData> = [String: TemplateData]()
        for (k, value) in self {
            let key = "\(k)"
            switch value {
            case is String:
container[key] = TemplateData.string(value as! String)
                break
            case is Bool:
                container[key] = TemplateData.bool(value as! Bool)
                break
            case is Int:
                container[key] = TemplateData.int(value as! Int)
                break
            case is Double:
                container[key] = TemplateData.double(value as! Double)
                break
            case is Data:
                container[key] = TemplateData.data(value as! Data)
                break
            case is Dictionary:
                container[key] =  (value as! Dictionary).toTempData()
                break
            case is Array<Any>:
                container[key] =  (value as! Array<Any>).toTempData() as TemplateData
                
            default:
                print("")
            }
        }
        return TemplateData.dictionary(container)
    }
}
extension Array{
   public func toTempData()->TemplateData{
        var container: [TemplateData] = [TemplateData]()
        for item in self {
            switch item {
            case  is  String:
                container.append(.string(item as! String))
            case is   Double:
                container.append(.double(item as! Double))
                break;
            case is   Bool:
                container.append(.bool(item as! Bool))
                break
            case  is  Int:
                container.append(.int(item as! Int))
                break
            case is  Data:
                container.append(.data(item as! Data))
                break
                
            case is  Array:
                container.append(  (item as! Array).toTempData())
                break
            case is Dictionary<String, Any>:
                container.append( (item as! Dictionary<String, Any>).toTempData())
            default:
                print("")
            }
        }
        return .array(container)
    }
}
複製代碼
相關文章
相關標籤/搜索