Often a Key
argument is used when you just need a key name.
This is because with a Key
we know the name is valid and we get an unescaped name.
Using a Key
here makes the API a bit confusing.
There could be a richer API for manipulating key names without relying on the escaped name (e.g. concatenating two full key names). With the current situation, all these functions would need to be part of the API for a key. Adding such functions to the key API is certainly not minimal.
- the key name is actually, in every implementation, a plain string
- add separate
struct KeyName
Continue keeping 3 classes: Key
, KeySet
and KDB
.
- A minimal
Key
ideally only consists of a key name and the goal is to keepKey
small, so introducingKeyName
would go the wrong direction.
Thus operations working on key names, directly use Key
as argument.
Text partly copied from @kodebach #4201 (review)