it works this way:
type
AuthenticatorType = enum
None,
Basic,
Session,
Cookie
Authenticator = object
case type: AuthenticatorType:
of None: discard
of Basic: username, password: string
of Session: sessionID: string
of Cookie: name, value: string
Runyou can't just let of None: dangle around, you need to add a discard
