mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-29 01:14:41 +00:00
37 lines
594 B
Nim
37 lines
594 B
Nim
discard """
|
|
output: '''
|
|
Test
|
|
abcxyz123
|
|
'''
|
|
"""
|
|
|
|
proc fakeReadLine(): string =
|
|
"abcxyz123"
|
|
|
|
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 = fakeReadLine()
|
|
if r == "": return Nothing[string]()
|
|
else: return Just(r)
|
|
|
|
proc main() =
|
|
var Test = Just("Test")
|
|
echo(Test.value)
|
|
var mSomething = safeReadLine()
|
|
echo(mSomething.value)
|
|
mSomething = safeReadLine()
|
|
|
|
main()
|