diff options
Diffstat (limited to 'lib/concepts/Hash.mli')
| -rw-r--r-- | lib/concepts/Hash.mli | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/lib/concepts/Hash.mli b/lib/concepts/Hash.mli index b100cd7..44fb3d0 100644 --- a/lib/concepts/Hash.mli +++ b/lib/concepts/Hash.mli @@ -1,11 +1,32 @@ (** an abstract value representing a hash *) type hash +(** the size of a hash, in bytes *) +val size : int + (** given a value, compute it's hash *) val hash_of_value : Value.value -> hash +(** given a bag of bytes, compute it's hash *) +val hash_of_bytes : bytes -> hash + +(** given a blob, compute it's hash *) +val hash_of_blob : Representation.blob -> hash + +(** given a hash, return a representation of it as a string (/not/ the usual hex representation!) *) +val to_raw_string : hash -> string + +(** given a string containing a representation of a hash (as per `to_raw_string`), return the corresponding hash *) +val of_raw_string : string -> hash + +(** compare two hashes lexicographically *) +val compare : hash -> hash -> Ordering.ordering + (** given two hashes, are they the same? *) val hash_equals : hash -> hash -> bool (** given a hash, return a `bytes` representation of it *) val bytes_of_hash : hash -> bytes + +(** pick one every 1/2^n hashes *) +val pick : int -> hash -> bool |
