use `pure` enums

This commit is contained in:
Dmitriy Ryajov 2022-09-12 15:46:24 -06:00
parent c646b9c2b9
commit fca255b2f7
No known key found for this signature in database
GPG Key ID: DA8C680CE7C657A4
2 changed files with 13 additions and 13 deletions

View File

@ -22,7 +22,7 @@ import
export providers_messages
type
MessageKind* = enum
MessageKind* {.pure.} = enum
# TODO This is needed only to make Nim 1.2.6 happy
# Without it, the `MessageKind` type cannot be used as
# a discriminator in case objects.
@ -116,16 +116,16 @@ type
discard
template messageKind*(T: typedesc[SomeMessage]): MessageKind =
when T is PingMessage: ping
elif T is PongMessage: pong
elif T is FindNodeMessage: findNode
elif T is FindNodeFastMessage: findNodeFast
elif T is NodesMessage: nodes
elif T is TalkReqMessage: talkReq
elif T is TalkRespMessage: talkResp
elif T is AddProviderMessage: addProvider
elif T is GetProvidersMessage: getProviders
elif T is ProvidersMessage: providers
when T is PingMessage: MessageKind.ping
elif T is PongMessage: MessageKind.pong
elif T is FindNodeMessage: MessageKind.findNode
elif T is FindNodeFastMessage: MessageKind.findNodeFast
elif T is NodesMessage: MessageKind.nodes
elif T is TalkReqMessage: MessageKind.talkReq
elif T is TalkRespMessage: MessageKind.talkResp
elif T is AddProviderMessage: MessageKind.addProvider
elif T is GetProvidersMessage: MessageKind.getProviders
elif T is ProvidersMessage: MessageKind.providers
proc hash*(reqId: RequestId): Hash =
hash(reqId.id)

View File

@ -89,7 +89,7 @@ suite "Discovery v5.1 Protocol Message Encodings":
let message = decoded.get()
check:
message.reqId == reqId
message.kind == nodes
message.kind == MessageKind.nodes
message.nodes.total == total
message.nodes.sprs.len() == 0
@ -111,7 +111,7 @@ suite "Discovery v5.1 Protocol Message Encodings":
let message = decoded.get()
check:
message.reqId == reqId
message.kind == nodes
message.kind == MessageKind.nodes
message.nodes.total == total
message.nodes.sprs.len() == 2
message.nodes.sprs[0] == s1