MCPcopy Create free account
hub / github.com/apache/brpc / SplitStringIntoKeyValueT

Function SplitStringIntoKeyValueT

src/butil/strings/string_split.cc:39–63  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

37
38template <typename STR>
39bool SplitStringIntoKeyValueT(const STR& line,
40 typename STR::value_type key_value_delimiter,
41 STR* key,
42 STR* value) {
43 key->clear();
44 value->clear();
45
46 // Find the delimiter.
47 size_t end_key_pos = line.find_first_of(key_value_delimiter);
48 if (end_key_pos == STR::npos) {
49 DVLOG(1) << "cannot find delimiter in: " << line;
50 return false; // no delimiter
51 }
52 key->assign(line, 0, end_key_pos);
53
54 // Find the value string.
55 STR remains(line, end_key_pos, line.size() - end_key_pos);
56 size_t begin_value_pos = remains.find_first_not_of(key_value_delimiter);
57 if (begin_value_pos == STR::npos) {
58 DVLOG(1) << "cannot parse value from line: " << line;
59 return false; // no value
60 }
61 value->assign(remains, begin_value_pos, remains.size() - begin_value_pos);
62 return true;
63}
64
65template <typename STR>
66void SplitStringUsingSubstrT(const STR& str,

Callers 1

Calls 5

find_first_ofMethod · 0.80
find_first_not_ofMethod · 0.80
clearMethod · 0.45
assignMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected