More designated initializers

This commit is contained in:
John Ericson 2020-06-19 17:42:56 +00:00
parent 2f0e395c99
commit 911fc88bcb
6 changed files with 19 additions and 10 deletions

View file

@ -71,8 +71,8 @@ DownloadFileResult downloadFile(
info.narHash = hashString(htSHA256, *sink.s);
info.narSize = sink.s->size();
info.ca = FixedOutputHash {
FileIngestionMethod::Flat,
hash,
.method = FileIngestionMethod::Flat,
.hash = hash,
};
auto source = StringSource { *sink.s };
store->addToStore(info, source, NoRepair, NoCheckSigs);

View file

@ -3764,7 +3764,10 @@ void DerivationGoal::registerOutputs()
else
assert(worker.store.parseStorePath(path) == dest);
ca = FixedOutputHash { i.second.hash->method, h2 };
ca = FixedOutputHash {
.method = i.second.hash->method,
.hash = h2,
};
}
/* Get rid of all weird permissions. This also checks that

View file

@ -55,10 +55,16 @@ ContentAddress parseContentAddress(std::string_view rawCa) {
auto methodAndHash = rawCa.substr(prefixSeparator+1, string::npos);
if (methodAndHash.substr(0,2) == "r:") {
std::string_view hashRaw = methodAndHash.substr(2,string::npos);
return FixedOutputHash { FileIngestionMethod::Recursive, Hash(string(hashRaw)) };
return FixedOutputHash {
.method = FileIngestionMethod::Recursive,
.hash = Hash(string(hashRaw)),
};
} else {
std::string_view hashRaw = methodAndHash;
return FixedOutputHash { FileIngestionMethod::Flat, Hash(string(hashRaw)) };
return FixedOutputHash {
.method = FileIngestionMethod::Flat,
.hash = Hash(string(hashRaw)),
};
}
} else {
throw Error("parseContentAddress: format not recognized; has to be text or fixed");

View file

@ -1079,7 +1079,7 @@ StorePath LocalStore::addToStoreFromDump(const string & dump, const string & nam
ValidPathInfo info(dstPath);
info.narHash = hash.first;
info.narSize = hash.second;
info.ca = FixedOutputHash { method, h };
info.ca = FixedOutputHash { .method = method, .hash = h };
registerValidPath(info);
}

View file

@ -49,8 +49,8 @@ struct CmdAddToStore : MixDryRun, StoreCommand
info.narHash = narHash;
info.narSize = sink.s->size();
info.ca = std::optional { FixedOutputHash {
FileIngestionMethod::Recursive,
info.narHash,
.method = FileIngestionMethod::Recursive,
.hash = info.narHash,
} };
if (!dryRun) {

View file

@ -83,8 +83,8 @@ struct CmdMakeContentAddressable : StorePathsCommand, MixJSON
info.narHash = narHash;
info.narSize = sink.s->size();
info.ca = FixedOutputHash {
FileIngestionMethod::Recursive,
info.narHash,
.method = FileIngestionMethod::Recursive,
.hash = info.narHash,
};
if (!json)