add hash proc to support using with containers (#516)

This commit is contained in:
Dmitriy Ryajov 2021-02-05 10:12:44 -06:00 committed by GitHub
parent 5aebf0990e
commit 5c234ddd37
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 6 additions and 3 deletions

View File

@ -11,7 +11,7 @@
{.push raises: [Defect].} {.push raises: [Defect].}
import tables import tables, hashes
import multibase, multicodec, multihash, vbuffer, varint import multibase, multicodec, multihash, vbuffer, varint
import stew/[base58, results] import stew/[base58, results]
@ -199,10 +199,10 @@ proc init*(ctype: typedesc[Cid], version: CidVersion, content: MultiCodec,
## Cid.init(CIDv0, multiCodec("dag-pb"), MultiHash.digest("sha2-256", data)) ## Cid.init(CIDv0, multiCodec("dag-pb"), MultiHash.digest("sha2-256", data))
## ##
## All other encodings and hashes are not supported by CIDv0. ## All other encodings and hashes are not supported by CIDv0.
var res: Cid var res: Cid
res.cidver = version res.cidver = version
if version == CIDv0: if version == CIDv0:
if content != multiCodec("dag-pb"): if content != multiCodec("dag-pb"):
return err(CidError.Unsupported) return err(CidError.Unsupported)
@ -268,6 +268,9 @@ proc encode*(mbtype: typedesc[MultiBase], encoding: string,
## ``encoding``. ## ``encoding``.
result = MultiBase.encode(encoding, cid.data.buffer).tryGet() result = MultiBase.encode(encoding, cid.data.buffer).tryGet()
proc hash*(cid: Cid): Hash {.inline.} =
hash(cid.data.buffer)
proc `$`*(cid: Cid): string = proc `$`*(cid: Cid): string =
## Return official string representation of content identifier ``cid``. ## Return official string representation of content identifier ``cid``.
if cid.cidver == CIDv0: if cid.cidver == CIDv0: