Create the spitPrefix function in parser.hh

This commit is contained in:
Carlo Nucera 2020-06-30 11:57:09 -04:00
parent a83566e5bc
commit 7ba0fae0dd

25
src/libutil/parser.hh Normal file
View file

@ -0,0 +1,25 @@
#pragma once
#include <optional>
namespace nix {
// If `separator` is found, we return the portion of the string before the
// separator, and modify the string argument to contain only the part after the
// separator. Otherwise, wer return `std::nullopt`, and we leave the argument
// string alone.
std::optional<std::string_view> splitPrefix(std::string_view & string, char separator);
std::optional<std::string_view> splitPrefix(std::string_view & string, char separator) {
auto sepInstance = string.find(separator);
if (sepInstance != std::string_view::npos) {
auto prefix = string.substr(0, sepInstance);
string.remove_prefix(sepInstance+1);
return prefix;
}
return std::nullopt;
}
}