aboutsummaryrefslogtreecommitdiff
path: root/src/libutil/hash.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/libutil/hash.hh')
-rw-r--r--src/libutil/hash.hh12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/libutil/hash.hh b/src/libutil/hash.hh
index 41322be67..8f9364440 100644
--- a/src/libutil/hash.hh
+++ b/src/libutil/hash.hh
@@ -25,7 +25,7 @@ const int sha512HashSize = 64;
extern const string base32Chars;
-enum struct Base : int {
+enum struct Base {
Base64,
Base32,
Base16,
@@ -52,11 +52,11 @@ struct Hash
Subresource Integrity hash expression). If the 'type' argument
is not present, then the hash type must be specified in the
string. */
- Hash(const std::string & s, std::optional<HashType> type);
+ Hash(std::string_view s, std::optional<HashType> type);
// type must be provided
- Hash(const std::string & s, HashType type);
+ Hash(std::string_view s, HashType type);
// hash type must be part of string
- Hash(const std::string & s);
+ Hash(std::string_view s);
void init();
@@ -93,7 +93,7 @@ struct Hash
/* Return a string representation of the hash, in base-16, base-32
or base-64. By default, this is prefixed by the hash type
(e.g. "sha256:"). */
- std::string to_string(Base base = Base::Base32, bool includeType = true) const;
+ std::string to_string(Base base, bool includeType) const;
std::string gitRev() const
{
@@ -108,6 +108,8 @@ struct Hash
}
};
+/* Helper that defaults empty hashes to the 0 hash. */
+Hash newHashAllowEmpty(std::string hashStr, std::optional<HashType> ht);
/* Print a hash in base-16 if it's MD5, or base-32 otherwise. */
string printHash16or32(const Hash & hash);