Merge branch 'master' of github.com:Araq/Nimrod

This commit is contained in:
Araq
2011-01-05 23:47:12 +01:00
2 changed files with 29 additions and 8 deletions

View File

@@ -0,0 +1,23 @@
type
TMaybe[T] = object
case empty: Bool
of False: value: T
else: nil
proc Just*[T](val: T): TMaybe[T] =
result.empty = False
result.value = val
proc Nothing[T](): TMaybe[T] =
result.empty = True
proc safeReadLine(): TMaybe[string] =
var r = stdin.readLine()
if r == "": return Nothing[string]()
else: return Just(r)
when isMainModule:
var Test = Just("Test")
echo(Test.value)
var mSomething = safeReadLine()
echo(mSomething.value)