Filter disabled enums in YangSchema::enumValues
Change-Id: I04a645fb5e0cccdc1a2766802cfd74c6676fb6c5
diff --git a/src/yang_schema.cpp b/src/yang_schema.cpp
index 4c55b27..549393a 100644
--- a/src/yang_schema.cpp
+++ b/src/yang_schema.cpp
@@ -135,8 +135,14 @@
enm = type->info()->enums()->enm();
}
+ std::vector<libyang::S_Type_Enum> enabled;
+ std::copy_if(enm.begin(), enm.end(), std::back_inserter(enabled), [] (const libyang::S_Type_Enum& it) {
+ auto iffeatures = it->iffeature();
+ return std::all_of(iffeatures.begin(), iffeatures.end(), [] (auto it) {return it->value();});
+ });
+
std::set<std::string> enumSet;
- std::transform(enm.begin(), enm.end(), std::inserter(enumSet, enumSet.end()), [](auto it) { return it->name(); });
+ std::transform(enabled.begin(), enabled.end(), std::inserter(enumSet, enumSet.end()), [](auto it) { return it->name(); });
return enumSet;
}