logos-messaging-nim/waku/common/option_shim.nim
SionoiS b0b72e98af
kad loop interval conf
std/options fixes

- add Option[T] valueOr/withValue no longer provided by libp2p
- add missing std/options imports no longer re-exported by libp2p
2026-05-05 12:24:12 -04:00

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