mirror of
https://github.com/z-kk/cliSeqSelector
synced 2026-01-15 13:41:39 +00:00
No description
| src | ||
| tests | ||
| .gitignore | ||
| cliSeqSelector.nimble | ||
| LICENSE | ||
| README.md | ||
cliSeqSelector
Nim library seq selector in CLI
Usage
Select from string list
import cliSeqSelector
let
list = @["item1", "item2", "item3", "item4", "item5"]
res = list.select("message")
$ ./yourAppName
message
> item1
press Down or 'j' then
$ ./yourAppName
message
> item2
press Right or 'l' or 'G' then
$ ./yourAppName
message
> item5
press Up or 'k' then
$ ./yourAppName
message
> item4
press Enter then
res.val == "item4"
res.idx == 3
Select from enum
type
sample = enum
item1
item2
item3
item4
item5
let res = sample.select("message")
display contents is same as string list.
res == sample.itemx
proc definitions
proc select*(list: seq[string], idx = 0): tuple[val: string, idx: int]
proc select*(list: seq[string], message: string, idx = 0): tuple[val: string, idx: int]
proc select*[T: enum](enm: typedesc[T]): T
proc select*[T: enum](enm: typedesc[T], val: T): T
proc select*[T: enum](enm: typedesc[T], message: string): T
proc select*[T: enum](enm: typedesc[T], message: string, val: T): T