Encontre o índice do objeto em uma matriz do tipo [SomeProtocol]

Eu tenho uma matriz chamada assinantes que armazena objetos em conformidade com o protocolo JABPanelChangeSubscriber. O protocolo é declarado como

public protocol JABPanelChangeSubscriber {

}

e minha matriz é declarada como:

var subscribers = [JABPanelChangeSubscriber]()

Agora preciso implementar um método para adicionar um assinante à lista, mas primeiro é necessário verificar se esse assinante ainda não foi adicionado antes.

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

Infelizmente, o JABPanelChangeSubscriber não é Equatable, e não consigo descobrir como torná-lo Equatable, portanto, o método find está me causando um erro. Alguém pode me ajudar com uma correção ou com uma sugestão para uma abordagem diferente?

obrigado

questionAnswers(2)

yourAnswerToTheQuestion