std/enumutils
Source EditИмпорты
- macros, typetraits
Процедуры
func symbolName[T: enum](a: T): string
-
Возвращает имя символа перечисления.
Использует
symbolRank.Пример:
type B = enum b0 = (10, "kb0") b1 = "kb1" b2 let b = B.low assert b.symbolName == "b0" assert $b == "kb0" static: assert B.high.symbolName == "b2" type C = enum # HoleyEnum c0 = -3 c1 = 4 c2 = 20 assert c1.symbolName == "c1"
Source Edit
Итераторы
Макросы
Шаблоны
template symbolRank[T: enum](a: T): int
-
Возвращает индекс, в котором
aперечислен вT.Стоимость для
HoleyEnumзависит от реализации, в настоящее время оптимизирована для малых перечислений, в противном случае составляетO(T.enumLen).Пример:
type A = enum # HoleyEnum a0 = -3 a1 = 10 a2 a3 = (20, "f3Alt") B = enum # OrdinalEnum b0 b1 b2 C = enum # OrdinalEnum c0 = 10 c1 c2 assert a2.symbolRank == 2 assert b2.symbolRank == 2 assert c2.symbolRank == 2 assert c2.ord == 12 assert a2.ord == 11 var invalid = 7.A doAssertRaises(IndexDefect): discard invalid.symbolRankSource Edit
© 2006–2024 Andreas Rumpf
Licensed under the MIT License.
https://nim-lang.org/docs/enumutils.html