diff options
author | pechatnov <pechatnov@yandex-team.ru> | 2022-02-10 16:48:57 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:48:57 +0300 |
commit | 132a3640fac343164b858d0a914e020a848a2848 (patch) | |
tree | 5d5cb817648f650d76cf1076100726fd9b8448e8 /library/cpp/yson/node | |
parent | 8e9b2f8bbf4a2320f539eef5b85555f42c065425 (diff) | |
download | ydb-132a3640fac343164b858d0a914e020a848a2848.tar.gz |
Restoring authorship annotation for <pechatnov@yandex-team.ru>. Commit 2 of 2.
Diffstat (limited to 'library/cpp/yson/node')
-rw-r--r-- | library/cpp/yson/node/node.cpp | 60 | ||||
-rw-r--r-- | library/cpp/yson/node/node.h | 20 | ||||
-rw-r--r-- | library/cpp/yson/node/node_ut.cpp | 26 |
3 files changed, 53 insertions, 53 deletions
diff --git a/library/cpp/yson/node/node.cpp b/library/cpp/yson/node/node.cpp index 7248148d0c..b39e070718 100644 --- a/library/cpp/yson/node/node.cpp +++ b/library/cpp/yson/node/node.cpp @@ -456,71 +456,71 @@ TNode& TNode::At(size_t index) { return list[index]; } -TNode& TNode::Add() & +TNode& TNode::Add() & { AssureList(); return std::get<TListType>(Value_).emplace_back(); } -TNode TNode::Add() && +TNode TNode::Add() && +{ + return std::move(Add()); +} + +TNode& TNode::Add(const TNode& node) & { - return std::move(Add()); -} - -TNode& TNode::Add(const TNode& node) & -{ AssureList(); std::get<TListType>(Value_).emplace_back(node); return *this; } -TNode TNode::Add(const TNode& node) && +TNode TNode::Add(const TNode& node) && +{ + return std::move(Add(node)); +} + +TNode& TNode::Add(TNode&& node) & { - return std::move(Add(node)); -} - -TNode& TNode::Add(TNode&& node) & -{ AssureList(); std::get<TListType>(Value_).emplace_back(std::move(node)); return *this; } -TNode TNode::Add(TNode&& node) && -{ - return std::move(Add(std::move(node))); -} - +TNode TNode::Add(TNode&& node) && +{ + return std::move(Add(std::move(node))); +} + bool TNode::HasKey(const TStringBuf key) const { CheckType(Map); return std::get<TMapType>(Value_).contains(key); } -TNode& TNode::operator()(const TString& key, const TNode& value) & +TNode& TNode::operator()(const TString& key, const TNode& value) & { AssureMap(); std::get<TMapType>(Value_)[key] = value; return *this; } -TNode TNode::operator()(const TString& key, const TNode& value) && +TNode TNode::operator()(const TString& key, const TNode& value) && +{ + return std::move(operator()(key, value)); +} + +TNode& TNode::operator()(const TString& key, TNode&& value) & { - return std::move(operator()(key, value)); -} - -TNode& TNode::operator()(const TString& key, TNode&& value) & -{ AssureMap(); std::get<TMapType>(Value_)[key] = std::move(value); return *this; } -TNode TNode::operator()(const TString& key, TNode&& value) && -{ - return std::move(operator()(key, std::move(value))); -} - +TNode TNode::operator()(const TString& key, TNode&& value) && +{ + return std::move(operator()(key, std::move(value))); +} + const TNode& TNode::operator[](const TStringBuf key) const { CheckType(Map); diff --git a/library/cpp/yson/node/node.h b/library/cpp/yson/node/node.h index c735fcd5e6..5f90f95df0 100644 --- a/library/cpp/yson/node/node.h +++ b/library/cpp/yson/node/node.h @@ -186,19 +186,19 @@ public: const TNode& At(size_t index) const; TNode& At(size_t index); - TNode& Add() &; - TNode Add() &&; - TNode& Add(const TNode& node) &; - TNode Add(const TNode& node) &&; - TNode& Add(TNode&& node) &; - TNode Add(TNode&& node) &&; + TNode& Add() &; + TNode Add() &&; + TNode& Add(const TNode& node) &; + TNode Add(const TNode& node) &&; + TNode& Add(TNode&& node) &; + TNode Add(TNode&& node) &&; bool HasKey(const TStringBuf key) const; - TNode& operator()(const TString& key, const TNode& value) &; - TNode operator()(const TString& key, const TNode& value) &&; - TNode& operator()(const TString& key, TNode&& value) &; - TNode operator()(const TString& key, TNode&& value) &&; + TNode& operator()(const TString& key, const TNode& value) &; + TNode operator()(const TString& key, const TNode& value) &&; + TNode& operator()(const TString& key, TNode&& value) &; + TNode operator()(const TString& key, TNode&& value) &&; const TNode& operator[](const TStringBuf key) const; TNode& operator[](const TStringBuf key); diff --git a/library/cpp/yson/node/node_ut.cpp b/library/cpp/yson/node/node_ut.cpp index a046334457..448e99f575 100644 --- a/library/cpp/yson/node/node_ut.cpp +++ b/library/cpp/yson/node/node_ut.cpp @@ -129,19 +129,19 @@ Y_UNIT_TEST_SUITE(YtNodeTest) { } Y_UNIT_TEST(TestInsertingMethodsFromTemporaryObjects) { - // check that .Add(...) doesn't return lvalue reference to temporary object - { - const TNode& nodeList = TNode().Add(0).Add("pass").Add(0); - UNIT_ASSERT_EQUAL(nodeList[1], TNode("pass")); - } - - // check that .operator()(...) doesn't return lvalue reference to temporary object - { - const TNode& nodeMap = TNode()("1", 0)("2", "pass")("3", 0); - UNIT_ASSERT_EQUAL(nodeMap["2"], TNode("pass")); - } - } - + // check that .Add(...) doesn't return lvalue reference to temporary object + { + const TNode& nodeList = TNode().Add(0).Add("pass").Add(0); + UNIT_ASSERT_EQUAL(nodeList[1], TNode("pass")); + } + + // check that .operator()(...) doesn't return lvalue reference to temporary object + { + const TNode& nodeMap = TNode()("1", 0)("2", "pass")("3", 0); + UNIT_ASSERT_EQUAL(nodeMap["2"], TNode("pass")); + } + } + Y_UNIT_TEST(TestAttributes) { TNode node = TNode()("lee", 42)("faa", 54); UNIT_ASSERT(!node.HasAttributes()); |