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.narHash = hashString(htSHA256, *sink.s);
info.narSize = sink.s->size(); info.narSize = sink.s->size();
info.ca = FixedOutputHash { info.ca = FixedOutputHash {
FileIngestionMethod::Flat, .method = FileIngestionMethod::Flat,
hash, .hash = hash,
}; };
auto source = StringSource { *sink.s }; auto source = StringSource { *sink.s };
store->addToStore(info, source, NoRepair, NoCheckSigs); store->addToStore(info, source, NoRepair, NoCheckSigs);

View file

@ -3764,7 +3764,10 @@ void DerivationGoal::registerOutputs()
else else
assert(worker.store.parseStorePath(path) == dest); 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 /* 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); auto methodAndHash = rawCa.substr(prefixSeparator+1, string::npos);
if (methodAndHash.substr(0,2) == "r:") { if (methodAndHash.substr(0,2) == "r:") {
std::string_view hashRaw = methodAndHash.substr(2,string::npos); 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 { } else {
std::string_view hashRaw = methodAndHash; std::string_view hashRaw = methodAndHash;
return FixedOutputHash { FileIngestionMethod::Flat, Hash(string(hashRaw)) }; return FixedOutputHash {
.method = FileIngestionMethod::Flat,
.hash = Hash(string(hashRaw)),
};
} }
} else { } else {
throw Error("parseContentAddress: format not recognized; has to be text or fixed"); 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); ValidPathInfo info(dstPath);
info.narHash = hash.first; info.narHash = hash.first;
info.narSize = hash.second; info.narSize = hash.second;
info.ca = FixedOutputHash { method, h }; info.ca = FixedOutputHash { .method = method, .hash = h };
registerValidPath(info); registerValidPath(info);
} }

View file

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

View file

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