diff --git a/module/Library/Utils/Dictionary.cpp b/module/Library/Utils/Dictionary.cpp index b8fa6765..d3516efc 100644 --- a/module/Library/Utils/Dictionary.cpp +++ b/module/Library/Utils/Dictionary.cpp @@ -25,6 +25,7 @@ void Register_Dictionary(HSQUIRRELVM vm, Table & ns) .Func(_SC("Set"), &SqDictionary::Set) .Func(_SC("Clear"), &SqDictionary::Clear) .Func(_SC("Erase"), &SqDictionary::Erase) + .Func(_SC("Exists"), &SqDictionary::Exists) .CbFunc(_SC("Each"), &SqDictionary::Each) .CbFunc(_SC("EachWith"), &SqDictionary::EachWith) .CbFunc(_SC("While"), &SqDictionary::While) diff --git a/module/Library/Utils/Dictionary.hpp b/module/Library/Utils/Dictionary.hpp index 511ed6da..b9ffe171 100644 --- a/module/Library/Utils/Dictionary.hpp +++ b/module/Library/Utils/Dictionary.hpp @@ -231,6 +231,18 @@ struct SqDictionary return false; } + /* -------------------------------------------------------------------------------------------- + * Check whether an element exists. + */ + bool Exists(SqKeyHash k) const + { + for (auto & e : mC) + { + if (e.first == k.mH) return true; + } + return false; + } + /* -------------------------------------------------------------------------------------------- * Iterate all values through a functor. */