NebulaGraph CPP Client  release-3.4
KeyValue.h
1 /* Copyright (c) 2020 vesoft inc. All rights reserved.
2  *
3  * This source code is licensed under Apache 2.0 License.
4  */
5 
6 #pragma once
7 
8 namespace nebula {
9 
10 struct KeyValue {
11  std::string key;
12  std::string value;
13 
14  KeyValue() {}
15  KeyValue(KeyValue&& rhs) noexcept : key(std::move(rhs.key)), value(std::move(rhs.value)) {}
16  KeyValue(const KeyValue& rhs) : key(rhs.key), value(rhs.value) {}
17  explicit KeyValue(std::pair<std::string, std::string> kv)
18  : key(std::move(kv.first)), value(std::move(kv.second)) {}
19 
20  void clear() {
21  key.clear();
22  value.clear();
23  }
24 
25  void __clear() {
26  clear();
27  }
28 
29  bool operator==(const KeyValue& rhs) const {
30  if (key != rhs.key) {
31  return false;
32  }
33  return value == rhs.value;
34  }
35 
36  bool operator<(const KeyValue& rhs) const {
37  if (key != rhs.key) {
38  return key < rhs.key;
39  }
40  return value < rhs.value;
41  }
42 };
43 
44 } // namespace nebula