Swift - Extensiones de protocolo - Valores predeterminados de propiedad

Digamos que tengo el siguiente protocolo:

protocol Identifiable {
    var id: Int {get}
    var name: String {get}
}

Y que tengo las siguientes estructuras:

struct A: Identifiable {
    var id: Int
    var name: String
}

struct B: Identifiable {
    var id: Int
    var name: String
}

Como puede ver, tuve que 'conformarme' con el protocolo identificable en la estructura A y la estructura B. Pero imagine que si tuviera N más estructuras que necesiten cumplir con este protocolo ... no quiero 'copiar / pegar 'la conformidad (id de var: Int, nombre de var: String)

Entonces creo unextensión de protocolo:

extension Identifiable {
    var id: Int {
        return 0
    }

    var name: String {
        return "default"
    }
}

Con esta extensión ahora puedo crear una estructura que se ajuste al protocolo identificable sin tener que implementar ambas propiedades:

struct C: Identifiable {

}

Ahora el problema es que no puedo establecer un valor para la propiedad id o la propiedad name:

var c: C = C()
c.id = 12 // Cannot assign to property: 'id' is a get-only property

Esto sucede porque en el protocolo identificable, la identificación y el nombre solo se pueden obtener. Ahora si cambio las propiedades de identificación y nombre a{prepárate} Obtuve el siguiente error:

El tipo 'C' no se ajusta al protocolo 'Identificable'

Este error ocurre porque no he implementado un configurador en la extensión del protocolo ... Entonces, cambio la extensión del protocolo:

extension Identifiable {
    var id: Int {
        get {
            return 0
        }

        set {

        }
    }

    var name: String {
        get {
            return "default"
        }

        set {

        }
    }
}

Ahora el error desaparece, pero si configuro un nuevo valor para id o name, obtiene el valor predeterminado (getter). Por supuesto,la incubadora está vacía.

Mi pregunta es:¿Qué código debo poner dentro del setter? Porque si agregoself.id = newValue se bloquea (recursivo).

Gracias por adelantado.

Respuestas a la pregunta(3)

Su respuesta a la pregunta