Duplicate code from libp2p because it is not exported anymore
This commit is contained in:
parent
599e868bc1
commit
a2f0528dc4
|
@ -38,6 +38,29 @@ func toFailure*[T](exp: Option[T]): Result[T, ref CatchableError] {.inline.} =
|
||||||
else:
|
else:
|
||||||
T.failure("Option is None")
|
T.failure("Option is None")
|
||||||
|
|
||||||
|
# allFuturesThrowing was moved to the tests in libp2p
|
||||||
|
proc allFuturesThrowing*[T](args: varargs[Future[T]]): Future[void] =
|
||||||
|
var futs: seq[Future[T]]
|
||||||
|
for fut in args:
|
||||||
|
futs &= fut
|
||||||
|
proc call() {.async.} =
|
||||||
|
var first: ref CatchableError = nil
|
||||||
|
futs = await allFinished(futs)
|
||||||
|
for fut in futs:
|
||||||
|
if fut.failed:
|
||||||
|
let err = fut.readError()
|
||||||
|
if err of Defect:
|
||||||
|
raise err
|
||||||
|
else:
|
||||||
|
if err of CancelledError:
|
||||||
|
raise err
|
||||||
|
if isNil(first):
|
||||||
|
first = err
|
||||||
|
if not isNil(first):
|
||||||
|
raise first
|
||||||
|
|
||||||
|
return call()
|
||||||
|
|
||||||
proc allFutureResult*[T](fut: seq[Future[T]]): Future[?!void] {.async.} =
|
proc allFutureResult*[T](fut: seq[Future[T]]): Future[?!void] {.async.} =
|
||||||
try:
|
try:
|
||||||
await allFuturesThrowing(fut)
|
await allFuturesThrowing(fut)
|
||||||
|
|
|
@ -47,6 +47,14 @@ type
|
||||||
CodexProof* = ref object of ByteProof
|
CodexProof* = ref object of ByteProof
|
||||||
mcodec*: MultiCodec
|
mcodec*: MultiCodec
|
||||||
|
|
||||||
|
# CodeHashes is not exported from libp2p
|
||||||
|
# So we need to recreate it instead of
|
||||||
|
proc initMultiHashCodeTable(): Table[MultiCodec, MHash] {.compileTime.} =
|
||||||
|
for item in HashesList:
|
||||||
|
result[item.mcodec] = item
|
||||||
|
|
||||||
|
const CodeHashes = initMultiHashCodeTable()
|
||||||
|
|
||||||
func mhash*(mcodec: MultiCodec): ?!MHash =
|
func mhash*(mcodec: MultiCodec): ?!MHash =
|
||||||
let
|
let
|
||||||
mhash = CodeHashes.getOrDefault(mcodec)
|
mhash = CodeHashes.getOrDefault(mcodec)
|
||||||
|
|
Loading…
Reference in New Issue