mirror of
https://github.com/logos-messaging/logos-messaging-nim.git
synced 2026-05-13 13:59:26 +00:00
std/options fixes - add Option[T] valueOr/withValue no longer provided by libp2p - add missing std/options imports no longer re-exported by libp2p
27 lines
526 B
Nim
27 lines
526 B
Nim
# Shim to provide valueOr and withValue for Option[T]
|
|
|
|
{.push raises: [].}
|
|
|
|
import std/options
|
|
|
|
template valueOr*[T](self: Option[T], def: untyped): T =
|
|
let s = self
|
|
if s.isSome():
|
|
s.get()
|
|
else:
|
|
def
|
|
|
|
template withValue*[T](self: Option[T], value, body: untyped) =
|
|
let s = self
|
|
if s.isSome():
|
|
let value {.inject.} = s.get()
|
|
body
|
|
|
|
template withValue*[T](self: Option[T], value, body, elseStmt: untyped) =
|
|
let s = self
|
|
if s.isSome():
|
|
let value {.inject.} = s.get()
|
|
body
|
|
else:
|
|
elseStmt
|