Skip to content

Instantly share code, notes, and snippets.

@digal
Created June 24, 2014 14:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save digal/f6af29483cf8ff1dc5bc to your computer and use it in GitHub Desktop.
Save digal/f6af29483cf8ff1dc5bc to your computer and use it in GitHub Desktop.
swift gen result
enum ProtocolMessage : Printable, Equatable {
case Keepalive
case Hello(pubkey: NSData, password: String)
case Send(encodedMessage: NSData, toPubkey: NSData)
case HelloResponse
case Message(encodedMessage: NSData, fromPubkey: NSData)
var description: String {
get {
switch self {
case (.Keepalive):
return "Keepalive"
case let (.Hello(pubkey, password)):
return "Hello(\(pubkey), \(password))"
case let (.Send(encodedMessage, toPubkey)):
return "Send(\(encodedMessage), \(toPubkey))"
case (.HelloResponse):
return "HelloResponse"
case let (.Message(encodedMessage, fromPubkey)):
return "Message(\(encodedMessage), \(fromPubkey))"
}
}
}
}
func==(lhs: ProtocolMessage, rhs: ProtocolMessage) -> Bool {
switch (lhs, rhs) {
case (.Keepalive, .Keepalive):
return true
case let (.Hello(lpubkey, lpassword), .Hello(rpubkey, rpassword)):
return lpubkey == rpubkey && lpassword == rpassword
case let (.Send(lencodedMessage, ltoPubkey), .Send(rencodedMessage, rtoPubkey)):
return lencodedMessage == rencodedMessage && ltoPubkey == rtoPubkey
case (.HelloResponse, .HelloResponse):
return true
case let (.Message(lencodedMessage, lfromPubkey), .Message(rencodedMessage, rfromPubkey)):
return lencodedMessage == rencodedMessage && lfromPubkey == rfromPubkey
case _:
return false
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment