MCPcopy Create free account
hub / github.com/Snapchat/Valdi / doParseNumber

Function doParseNumber

valdi_core/src/valdi_core/cpp/Utils/TextParser.cpp:145–156  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

143
144template<typename T, typename F, typename... Args>
145static bool doParseNumber(const std::string_view& str, size_t& position, T& output, F&& fn, Args&&... args) {
146 const auto* startPtr = str.data() + position;
147 const auto* maxEndPtr = str.data() + str.size();
148 char* endPtr = nullptr;
149 output = fn(startPtr, &endPtr, std::forward<Args>(args)...);
150 if (endPtr != nullptr && endPtr != startPtr && endPtr <= maxEndPtr) {
151 position += static_cast<size_t>(endPtr - startPtr);
152 return true;
153 } else {
154 return false;
155 }
156}
157
158std::optional<double> TextParser::parseDouble() {
159 double d;

Callers

nothing calls this directly

Calls 3

fnFunction · 0.50
dataMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected