From ab4d65ac83fd1deedefa7c0289968f935e10e80e Mon Sep 17 00:00:00 2001 From: Tanguy Date: Mon, 20 Jun 2022 15:03:55 +0200 Subject: [PATCH] Re-introduce placeholder --- questionable/binding.nim | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/questionable/binding.nim b/questionable/binding.nim index a8acedf..334e110 100644 --- a/questionable/binding.nim +++ b/questionable/binding.nim @@ -1,12 +1,15 @@ import std/options import std/macros +proc placeholder(T: type): T = + discard + template questionableUnpack*[T](expression: Option[T]): (T, bool) = ## Used internally let option = expression type T = typeof(option.unsafeGet()) - let res = if option.isSome: option.unsafeGet() else: default(T) + let res = if option.isSome: option.unsafeGet() else: placeholder(T) (res, option.isSome) macro `=?`*(name, expression): bool =