32 lines
494 B
Nim
Raw Normal View History

2022-07-15 15:28:42 -05:00
import ./key
type
2022-09-12 12:30:52 -06:00
SortOrder* {.pure.} = enum
Assending,
Descensing
2022-07-15 15:28:42 -05:00
2022-09-12 12:30:52 -06:00
Query* = object
key*: Key
2022-09-19 15:52:34 -06:00
value*: bool
2022-09-12 12:30:52 -06:00
limit*: int
skip*: int
2022-09-19 15:52:34 -06:00
sort*: SortOrder
2022-07-15 15:28:42 -05:00
QueryResponse* = tuple[key: Key, data: seq[byte]]
2022-09-19 15:52:34 -06:00
QueryIter* = iterator(): QueryResponse {.closure.}
2022-09-12 12:30:52 -06:00
2022-07-15 15:28:42 -05:00
proc init*(
T: type Query,
2022-09-12 12:30:52 -06:00
key: Key,
2022-09-19 15:52:34 -06:00
value = false,
sort = SortOrder.Descensing,
2022-09-12 12:30:52 -06:00
skip = 0,
limit = 0): T =
2022-07-15 15:28:42 -05:00
2022-09-12 12:30:52 -06:00
T(
key: key,
2022-09-19 15:52:34 -06:00
value: value,
sort: sort,
2022-09-12 12:30:52 -06:00
skip: skip,
limit: limit)