60inline bool val_from_string(std::string& out,
const std::string& str,
const std::string& key)
74 std::string::size_type start_pos = 0;
76 !(start_pos == 0 || start_pos == std::string::npos || str[start_pos - 1] ==
','))
80 boost::iterator_range<std::string::const_iterator> result =
81 boost::ifind_nth(str, std::string(key +
"="), match);
82 start_pos = (result) ? result.begin() - str.begin() : std::string::npos;
86 if (start_pos != std::string::npos)
90 std::string chopped = str.substr(start_pos);
96 std::string::size_type equal_pos = chopped.find(
"=");
99 bool is_array = (equal_pos + 1 < chopped.length() && chopped[equal_pos + 1] ==
'{');
101 if (equal_pos != std::string::npos)
105 std::string chopped_twice = chopped.substr(equal_pos);
111 std::string::size_type end_pos =
112 (is_array) ? chopped_twice.find(
"}") : chopped_twice.find(
",");
116 out = (is_array) ? chopped_twice.substr(2, end_pos - 2)
117 : chopped_twice.substr(1, end_pos - 1);
extern ::PROTOBUF_NAMESPACE_ID::internal::ExtensionIdentifier< ::PROTOBUF_NAMESPACE_ID::MessageOptions, ::PROTOBUF_NAMESPACE_ID::internal::MessageTypeTraits< ::goby::GobyMessageOptions >, 11, false > msg