ntentando escribir una función genérica para analizar JSON en Structs codificables

Actualmente estoy analizando JSON como este

struct ExampleStruct : Codable {
     init() {

     }
     // implementation
}

if let jsonData = jsonString.data(using: .utf8) {
    do {
        let decoder = JSONDecoder()
        let object =  try decoder.decode(ExampleStruct.self, from: jsonData)
    } catch {
        print("Coding error - \(error)")
    }
}

Esto funciona bien, sin embargo, he estado tratando de aprender sobre genéricos durante el fin de semana. Estoy tratando de escribir un método que paso en un tipo de estructura codificable y una cadena de JSON que devuelve el objeto del tipo que quiero recuperar.

He intentado lo siguiente: -

func getType<T>(_ anyType: T.Type, from jsonString:String) -> T? {

if let jsonData = jsonString.data(using: .utf8) {
    do {
        let decoder = JSONDecoder()
        let object =  try decoder.decode(anyType, from: jsonData)//Errors here
        return object as? T
        return nil
    } catch {
        print("Coding error - \(error)")
       return nil
    }
  }
return nil
}

y luego cuando quiero hacer lo anterior

 if let exampleStruct:ExampleStruct = getType(type(of: ExampleStruct()), from: jsonString) {
  print(exampleStruct)
 }

Sin embargo, en la línea let = object obtengo los siguientes errores

No se puede convertir el valor de tipo 'T' (parámetro genérico de la función global 'getType : from :) ') al tipo de argumento esperado' T '(parámetro genérico del método de instancia' decode :desde:)'

En el tipo de argumento 'T.Type', 'T' no se ajusta al tipo esperado 'Decodable'

Como dije, he estado tratando de aprender acerca de los genéricos este fin de semana, pero claramente he llegado a un bloqueo en mi entendimiento. ¿Hay alguna solución para esto, de hecho es lo que estoy tratando de hacer posible o una buena idea?

Respuestas a la pregunta(1)

Su respuesta a la pregunta