Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

typelists Build Status nimble

Typelists in Nim

Usage

See more examples in the test file

import typelists, unittest

suite "Typelists":
  test "1":
    type MyTup = (int, float)
    type TupleOf5Ints = makeTypeListIt(5, int)
    type TupleOf5IntsAndFloat = typeListAppend(TupleOf5Ints, float)
    type TupleOf5IntsAndFloatAndMyTup = typeListAppendTuple(TupleOf5IntsAndFloat, MyTup)
    type MyTup2 = (int, float, float, int)
    type MyTup2WithFloatsDeleted = typeListDel(MyTup2, 1, 2)
    type InvertFloatsanInts = typeListMapIt(MyTup2, when it is float: int else: float)
    type Foo = typeListFilterIt((int, float, int32), it isnot int)

    check:
      typeListRepr(MyTup) == "(int, float)"
      typeListRepr(TupleOf5Ints) == "(int, int, int, int, int)"
      typeListRepr(TupleOf5IntsAndFloat) == "(int, int, int, int, int, float)"
      typeListRepr(TupleOf5IntsAndFloatAndMyTup) == "(int, int, int, int, int, float, int, float)"
      typeListRepr(MyTup2WithFloatsDeleted) == "(int, int)"
      typeListRepr(InvertFloatsanInts) == "(float, int, int, float)"
      typeListRepr(Foo) == "(float, int32)"

      typeListCountIt(MyTup2, it is float) == 2
      typeListCountIt(MyTup2, it is int) == 2

      typeListLen(TupleOf5Ints) == 5

      typeListLen(MyTup) == 2

      typeListFind(MyTup, float) == 1
      typeListFind(MyTup, int) == 0

      (typeListTypeAt(MyTup, 0) is int) == true
      (typeListTypeAt(MyTup, 1) is float) == true

About

Typelists in Nim

Resources

Stars

9 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages