Nix 2.26.3
Nix, the purely functional package manager; unstable internal interfaces
 
Loading...
Searching...
No Matches
nix::Hash Struct Reference

Public Member Functions

 Hash (HashAlgorithm algo)
 
bool operator== (const Hash &h2) const noexcept
 
std::strong_ordering operator<=> (const Hash &h2) const noexcept
 
size_t base16Len () const
 
size_t base32Len () const
 
size_t base64Len () const
 
std::string to_string (HashFormat hashFormat, bool includeAlgo) const
 
std::string gitRev () const
 
std::string gitShortRev () const
 

Static Public Member Functions

static Hash parseAny (std::string_view s, std::optional< HashAlgorithm > optAlgo)
 
static Hash parseAnyPrefixed (std::string_view s)
 
static Hash parseNonSRIUnprefixed (std::string_view s, HashAlgorithm algo)
 
static Hash parseSRI (std::string_view original)
 
static Hash random (HashAlgorithm algo)
 

Public Attributes

size_t hashSize = 0
 
uint8_t hash [maxHashSize] = {}
 
HashAlgorithm algo
 

Static Public Attributes

static constexpr size_t maxHashSize = 64
 
static Hash dummy
 

Constructor & Destructor Documentation

◆ Hash()

nix::Hash::Hash ( HashAlgorithm algo)
explicit

Create a zero-filled hash object.

Member Function Documentation

◆ base16Len()

size_t nix::Hash::base16Len ( ) const
inlinenodiscard

Returns the length of a base-16 representation of this hash.

◆ base32Len()

size_t nix::Hash::base32Len ( ) const
inlinenodiscard

Returns the length of a base-32 representation of this hash.

◆ base64Len()

size_t nix::Hash::base64Len ( ) const
inlinenodiscard

Returns the length of a base-64 representation of this hash.

◆ operator<=>()

std::strong_ordering nix::Hash::operator<=> ( const Hash & h2) const
noexcept

Compare how two hashes are ordered.

◆ operator==()

bool nix::Hash::operator== ( const Hash & h2) const
noexcept

Check whether two hashes are equal.

◆ parseAny()

Hash nix::Hash::parseAny ( std::string_view s,
std::optional< HashAlgorithm > optAlgo )
static

Parse the hash from a string representation in the format "[<type>:]<base16|base32|base64>" or "<type>-<base64>" (a Subresource Integrity hash expression). If the 'type' argument is not present, then the hash algorithm must be specified in the string.

◆ parseAnyPrefixed()

Hash nix::Hash::parseAnyPrefixed ( std::string_view s)
static

Parse a hash from a string representation like the above, except the type prefix is mandatory is there is no separate arguement.

◆ parseNonSRIUnprefixed()

Hash nix::Hash::parseNonSRIUnprefixed ( std::string_view s,
HashAlgorithm algo )
static

Parse a plain hash that musst not have any prefix indicating the type. The type is passed in to disambiguate.

◆ random()

Hash nix::Hash::random ( HashAlgorithm algo)
static
Returns
a random hash with hash algorithm algo

◆ to_string()

std::string nix::Hash::to_string ( HashFormat hashFormat,
bool includeAlgo ) const
nodiscard

Return a string representation of the hash, in base-16, base-32 or base-64. By default, this is prefixed by the hash algo (e.g. "sha256:").


The documentation for this struct was generated from the following files: