diff options
author | jansenin <jansenin@yandex-team.com> | 2023-08-14 13:14:44 +0300 |
---|---|---|
committer | jansenin <jansenin@yandex-team.com> | 2023-08-14 14:28:19 +0300 |
commit | febf300349ed585aa250bef06bfbdb91597a08bd (patch) | |
tree | 5fe536e237be44ffd8af8808d3afbd0f24a7e23a /library/cpp | |
parent | 400f29bde4ceb79c8120bbc57dff1725c5fa7c80 (diff) | |
download | ydb-febf300349ed585aa250bef06bfbdb91597a08bd.tar.gz |
add Map.Has(TString)
Diffstat (limited to 'library/cpp')
-rw-r--r-- | library/cpp/yaml/fyamlcpp/fyamlcpp.cpp | 4 | ||||
-rw-r--r-- | library/cpp/yaml/fyamlcpp/fyamlcpp.h | 2 | ||||
-rw-r--r-- | library/cpp/yaml/fyamlcpp/fyamlcpp_ut.cpp | 2 |
3 files changed, 8 insertions, 0 deletions
diff --git a/library/cpp/yaml/fyamlcpp/fyamlcpp.cpp b/library/cpp/yaml/fyamlcpp/fyamlcpp.cpp index 37ead18350..d990d056e3 100644 --- a/library/cpp/yaml/fyamlcpp/fyamlcpp.cpp +++ b/library/cpp/yaml/fyamlcpp/fyamlcpp.cpp @@ -417,6 +417,10 @@ void TMapping::Remove(const TNodePairRef& toRemove) { free(toRemove.Pair_); } +bool TMapping::Has(TString key) { + return fy_node_mapping_lookup_by_string(Node_, key.data(), key.size()) != nullptr; +} + TMappingIterator TMapping::Remove(const TMappingIterator& toRemove) { ENSURE_NODE_NOT_EMPTY(Node_); Y_VERIFY_DEBUG(Node_ == toRemove.Node_); diff --git a/library/cpp/yaml/fyamlcpp/fyamlcpp.h b/library/cpp/yaml/fyamlcpp/fyamlcpp.h index cb622bd146..72936b44bc 100644 --- a/library/cpp/yaml/fyamlcpp/fyamlcpp.h +++ b/library/cpp/yaml/fyamlcpp/fyamlcpp.h @@ -487,6 +487,8 @@ public: void Remove(const TNodePairRef& toRemove); + bool Has(TString key); + TMappingIterator Remove(const TMappingIterator& toRemove); void Remove(const TNodeRef& key); diff --git a/library/cpp/yaml/fyamlcpp/fyamlcpp_ut.cpp b/library/cpp/yaml/fyamlcpp/fyamlcpp_ut.cpp index 041a7028b3..493aaab136 100644 --- a/library/cpp/yaml/fyamlcpp/fyamlcpp_ut.cpp +++ b/library/cpp/yaml/fyamlcpp/fyamlcpp_ut.cpp @@ -170,6 +170,8 @@ x: b } auto seq = doc->Root().Map().at("test").Sequence(); + UNIT_ASSERT(seq[0].Map().Has("x")); + UNIT_ASSERT(!seq[0].Map().Has("xx")); UNIT_ASSERT_VALUES_EQUAL(seq[0].Map().at("x").Scalar(), "1"); UNIT_ASSERT_VALUES_EQUAL(seq[0].Map().at("y").Scalar(), "2"); UNIT_ASSERT_VALUES_EQUAL(seq[1].Map().at("a").Scalar(), "noop"); |