Skip to content
Snippets Groups Projects

Add support for namespaced attributes in DynamicAttributes

Merged Olivier BICHLER requested to merge attr_ns into dev
1 file
+ 3
5
Compare changes
  • Side-by-side
  • Inline
@@ -144,17 +144,15 @@ public:
void delAttr(const std::string& name) {
const auto dot = name.find('.');
if (dot == name.npos) {
AIDGE_ASSERT(isPascalCase(name), "Aidge standard requires PascalCase for C++ Attributes for \"{}\".", name);
mAttrs.erase(name);
mAttrs.erase((isSnakeCase(name)) ? snakeToPascal(name) : name);
#ifdef PYBIND
mAttrsPy.erase(pascalToSnake(name));
mAttrsPy.erase((isPascalCase(name)) ? pascalToSnake(name) : name);
#endif
}
else {
const auto ns = name.substr(0, dot);
AIDGE_ASSERT(isPascalCase(ns), "Aidge standard requires PascalCase for C++ Attributes namespace for \"{}\".", ns);
const auto nsName = name.substr(dot + 1);
future_std::any_cast<DynamicAttributes&>(mAttrs.at(ns)).delAttr(nsName);
future_std::any_cast<DynamicAttributes&>(mAttrs.at((isSnakeCase(ns)) ? snakeToPascal(ns) : ns)).delAttr(nsName);
}
}
Loading