4#include "signature/signer.hh"
20 std::optional<StorePath> deriver;
21 StorePathSet references;
32using SubstitutablePathInfos = std::map<StorePath, SubstitutablePathInfo>;
41struct UnkeyedValidPathInfo
102 std::optional<ContentAddress>
ca;
104 UnkeyedValidPathInfo(
const UnkeyedValidPathInfo & other) =
default;
113 std::weak_ordering
operator <=> (
const UnkeyedValidPathInfo &)
const noexcept;
115 virtual ~UnkeyedValidPathInfo() { }
121 virtual nlohmann::json
toJSON(
123 bool includeImpureInfo,
127 const nlohmann::json & json);
130struct ValidPathInfo : UnkeyedValidPathInfo {
133 bool operator == (
const ValidPathInfo &)
const =
default;
134 auto operator <=> (
const ValidPathInfo &)
const =
default;
146 void sign(
const Store &
store,
const Signer & signer);
160 static const size_t maxSigs = std::numeric_limits<size_t>::max();
179 ValidPathInfo(
StorePath && path, UnkeyedValidPathInfo info) : UnkeyedValidPathInfo(info), path(std::move(path)) { };
180 ValidPathInfo(
const StorePath & path, UnkeyedValidPathInfo info) : UnkeyedValidPathInfo(info), path(path) { };
186static_assert(std::is_move_assignable_v<ValidPathInfo>);
187static_assert(std::is_copy_assignable_v<ValidPathInfo>);
188static_assert(std::is_copy_constructible_v<ValidPathInfo>);
189static_assert(std::is_move_constructible_v<ValidPathInfo>);
191using ValidPathInfos = std::map<StorePath, ValidPathInfo>;
Definition store-api.hh:169
ChunkedVector< std::string, 8192 > store
Definition lexer.l:1011
std::optional< std::string > fingerprint
Definition lexer.l:4579
virtual nlohmann::json toJSON()=0
const std::string_view & name
Definition lexer.l:1709
HashFormat
Enumeration representing the hash formats.
Definition hash.hh:29
Definition content-address.hh:276
Definition path-info.hh:19
uint64_t downloadSize
Definition path-info.hh:25
uint64_t narSize
Definition path-info.hh:29
Definition path-info.hh:42
std::weak_ordering operator<=>(const UnkeyedValidPathInfo &) const noexcept
std::optional< ContentAddress > ca
Definition path-info.hh:102
StorePathSet references
Definition path-info.hh:56
bool ultimate
Definition path-info.hh:81
time_t registrationTime
Definition path-info.hh:62
std::optional< StorePath > deriver
Definition path-info.hh:46
Hash narHash
Definition path-info.hh:51
uint64_t narSize
Definition path-info.hh:67
bool checkSignature(const Store &store, const PublicKeys &publicKeys, const std::string &sig) const
Definition path-info.cc:111
Strings shortRefs() const
Definition path-info.cc:117
size_t checkSignatures(const Store &store, const PublicKeys &publicKeys) const
Definition path-info.cc:99
bool isContentAddressed(const Store &store) const
Definition path-info.cc:81
std::optional< ContentAddressWithReferences > contentAddressWithReferences() const
Definition path-info.cc:43