mirror of
https://github.com/NixOS/nix.git
synced 2025-11-21 09:49:36 +01:00
Create new file-hash files
This commit is contained in:
parent
0cb67ecbd3
commit
0e9438b6d3
8 changed files with 64 additions and 52 deletions
34
src/libstore/file-hash.hh
Normal file
34
src/libstore/file-hash.hh
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
#pragma once
|
||||
|
||||
#include "hash.hh"
|
||||
|
||||
namespace nix {
|
||||
|
||||
enum struct FileIngestionMethod : uint8_t {
|
||||
Flat = false,
|
||||
Recursive = true
|
||||
};
|
||||
|
||||
/// Pair of a hash, and how the file system was ingested
|
||||
struct FileSystemHash {
|
||||
FileIngestionMethod method;
|
||||
Hash hash;
|
||||
FileSystemHash(FileIngestionMethod method, Hash hash)
|
||||
: method(std::move(method))
|
||||
, hash(std::move(hash))
|
||||
{ }
|
||||
FileSystemHash(const FileSystemHash &) = default;
|
||||
FileSystemHash(FileSystemHash &&) = default;
|
||||
FileSystemHash & operator = (const FileSystemHash &) = default;
|
||||
std::string printMethodAlgo() const;
|
||||
};
|
||||
|
||||
/* Compute the prefix to the hash algorithm which indicates how the files were
|
||||
ingested. */
|
||||
std::string makeFileIngestionPrefix(const FileIngestionMethod m);
|
||||
|
||||
/* Compute the content-addressability assertion (ValidPathInfo::ca)
|
||||
for paths created by makeFixedOutputPath() / addToStore(). */
|
||||
std::string makeFixedOutputCA(FileIngestionMethod method, const Hash & hash);
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue