refactor(tvix): Make static strings constexpr string_views

Make all static std::strings constexpr std::string_views, and replace
concatenation with absl::StrCat where necessary.

Technically all of these are constant, so they really don't need to be
top-level statics - and since I'm trying to get rid of as much global
state as possible in preparation for making the nix daemon properly
multithreaded I figured I'd knock these out while I was at it.

Change-Id: Ibd3ad9ef68f0a0eacb135541b39fdb13dae042e1
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1939
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
This commit is contained in:
Griffin Smith 2020-09-07 13:01:49 -04:00 committed by glittershark
parent 31b06516f3
commit 381ce8a666
8 changed files with 46 additions and 42 deletions

View file

@ -1,3 +1,5 @@
#include <absl/strings/match.h>
#include <absl/strings/str_cat.h>
#include <glog/logging.h>
#include "libstore/derivations.hh"
@ -11,7 +13,7 @@
namespace nix {
static std::string uriScheme = "ssh://";
constexpr std::string_view kUriScheme = "ssh://";
struct LegacySSHStore : public Store {
const Setting<int> maxConnections{
@ -86,7 +88,7 @@ struct LegacySSHStore : public Store {
return conn;
};
std::string getUri() override { return uriScheme + host; }
std::string getUri() override { return absl::StrCat(kUriScheme, host); }
void queryPathInfoUncached(
const Path& path,
@ -269,11 +271,11 @@ struct LegacySSHStore : public Store {
static RegisterStoreImplementation regStore(
[](const std::string& uri,
const Store::Params& params) -> std::shared_ptr<Store> {
if (std::string(uri, 0, uriScheme.size()) != uriScheme) {
if (!absl::StartsWith(uri, kUriScheme)) {
return nullptr;
}
return std::make_shared<LegacySSHStore>(
std::string(uri, uriScheme.size()), params);
std::string(uri, kUriScheme.size()), params);
});
} // namespace nix