From 2074ad141603361b7a0f32f9d3b855f33587b49d Mon Sep 17 00:00:00 2001 From: narimiran Date: Mon, 25 Feb 2019 11:33:18 +0100 Subject: [PATCH] strutils: document `parseEnum` [ci skip] --- lib/pure/strutils.nim | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/lib/pure/strutils.nim b/lib/pure/strutils.nim index a946bc8c6a..54d0e3f144 100644 --- a/lib/pure/strutils.nim +++ b/lib/pure/strutils.nim @@ -1173,6 +1173,18 @@ proc parseEnum*[T: enum](s: string): T = ## ## Raises ``ValueError`` for an invalid value in `s`. The comparison is ## done in a style insensitive way. + runnableExamples: + type + MyEnum = enum + first = "1st", + second, + third = "3rd" + + doAssert parseEnum[MyEnum]("1_st") == first + doAssert parseEnum[MyEnum]("second") == second + doAssertRaises(ValueError): + echo parseEnum[MyEnum]("third") + for e in low(T)..high(T): if cmpIgnoreStyle(s, $e) == 0: return e @@ -1183,6 +1195,17 @@ proc parseEnum*[T: enum](s: string, default: T): T = ## ## Uses `default` for an invalid value in `s`. The comparison is done in a ## style insensitive way. + runnableExamples: + type + MyEnum = enum + first = "1st", + second, + third = "3rd" + + doAssert parseEnum[MyEnum]("1_st") == first + doAssert parseEnum[MyEnum]("second") == second + doAssert parseEnum[MyEnum]("last", third) == third + for e in low(T)..high(T): if cmpIgnoreStyle(s, $e) == 0: return e