123456789101112131415161718192021222324 |
- 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)
|