summary refs log tree commit diff stats
path: root/tests/lookups/t23749.nim
blob: 650f04ea4c00b92bd68da894fb4e705622c96f00 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
discard """
  action: compile
"""

{.pragma: callback, gcsafe, raises: [].}

type
  DataProc* = proc(val: openArray[byte]) {.callback.}
  GetProc = proc (db: RootRef, key: openArray[byte], onData: DataProc): bool {.nimcall, callback.}
  KvStoreRef* = ref object
    obj: RootRef
    getProc: GetProc

template get(dbParam: KvStoreRef, key: openArray[byte], onData: untyped): bool =
  let db = dbParam
  db.getProc(db.obj, key, onData)

func decode(input: openArray[byte], maxSize = 128): seq[byte] =
  @[]

proc getSnappySSZ(db: KvStoreRef, key: openArray[byte]): string =
  var status = "not found"
  proc decode(data: openArray[byte]) =
    status =
      if true: "found"
      else: "corrupted"
  discard db.get(key, decode)
  status


var ksr: KvStoreRef
var k = [byte(1), 2, 3, 4, 5]

proc foo(): string =
  getSnappySSZ(ksr, toOpenArray(k, 1, 3))

echo foo()