Encuentre el índice del objeto en una matriz de tipo [SomeProtocol]

Tengo una matriz llamada suscriptores que almacena objetos que se ajustan al protocolo JABPanelChangeSubscriber. El protocolo se declara como

public protocol JABPanelChangeSubscriber {

}

y mi matriz se declara como:

var subscribers = [JABPanelChangeSubscriber]()

Ahora necesito implementar un método para agregar un suscriptor a la lista, pero primero debe verificar que ese suscriptor no se haya agregado antes.

public func addSubscriber(subscriber: JABPanelChangeSubscriber) {
    if subscribers.find(subscriber) == nil { // This ensures that the subscriber has never been added before
        subscribers.append(subscriber)
    }
}

Desafortunadamente, JABPanelChangeSubscriber no es Equatable, y no puedo entender cómo hacerlo Equatable, por lo que el método find me está dando un error. ¿Alguien puede ayudarme con una solución o con una sugerencia para un enfoque diferente?

Gracias

Respuestas a la pregunta(2)

Su respuesta a la pregunta