Hello, I know in a function returning a ref type, I need to construct the
result first: `new(result)`
However what if the result is an Option type? I need to construct what's inside
before wrapping it inside an option. How can I do this?
Example code:
type
Tree*[T] = ref object of RootObj
item: T
parent, left, right: Tree[T]
proc searchTree*[T](leaf: Tree[T]; search_for: T): Option[Tree[T]] =
if leaf.get().isNone():
return result # which should be none(Tree[T])
elif leaf.get().item == search_for:
result = some(leaf)
return result
elif search_for < leaf.get().item:
result = searchTree(leaf.get(), searchFor)
return result
else:
result = searchTree(leaf.get().right, searchFor)
Run