nyan
nyan copied to clipboard
Replace `fqon_t` with more advanced identifier type
Current object, member or namespace IDs are simple std::string
types, e.g. fqon_t
or fqnn_t
. These are sufficient for addressing nyan objects, but are not suitable for advanced operations like:
- [X] Rebuilding the directory/file path of an object (e.g. for fetching relative file referenced by the
file
type) - [X] Getting the namespace an object is in
- [ ] Checking if an object is nested
- [ ] Checking if a member ID is prefixed (with inheritance info)
Ideally, we want something that captures all of these features while still being as easy to use as std::string
.
A good start would be to have a class that manages the individual parts of an fqon:
struct fqon_t {
std::vector<std::string> dir_parts;
std::string file_part;
std::vector<std::string> obj_parts;
};