erstreckt Angenommen, ich bin ein Social-Media-Crawler zu schreiben, die mehrere Konten verarbeiten (zB Facebook, Twitter, etc.)Wie die Art des Generator.Element in einem Protokoll beschränken SequenceType
ich einige Protokolle für Nachrichten definieren (Message
hat Anzeigename und Nachrichtentext, Timestamped
hat einen Zeitstempel, Forwarded
hat die ursprüngliche Nachrichten-ID usw.).
ich ein Protokoll für eine Quelle von Nachrichten, dann definieren, die ich zur Zeit
protocol MessageSource : SequenceType {
associatedtype MessageType : Timestamped
func messages (since : NSDate) -> Generator
}
Die Idee geschrieben habe, ist ich die n
neuesten Nachrichten seit einem Datum msgSource.take(n)
durch das Schreiben und erhalte alle Nachrichten bekommen kann d
von msgSource.messages(since : d)
Meine Frage ist das Schreiben, wie einschränken ich die Generator.Element
von SequenceType
geerbt sein identisch mit MessageType
, so dass beide Generatoren sind garantiert die gleiche Art zurückzukehren.