File: treturn_await.nim

package info (click to toggle)
nim 2.2.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,911,644 kB
  • sloc: sh: 24,603; ansic: 1,761; python: 1,492; makefile: 1,013; sql: 298; asm: 141; xml: 13
file content (23 lines) | stat: -rw-r--r-- 558 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

# bug #4371

import strutils, asyncdispatch, asynchttpserver

type
  List[A] = ref object
    value: A
    next: List[A]
  StrPair* = tuple[k, v: string]
  Context* = object
    position*: int
    accept*: bool
    headers*: List[StrPair]
  Handler* = proc(req: ref Request, ctx: Context): Future[Context]

proc logging*(handler: Handler): auto =
  proc h(req: ref Request, ctx: Context): Future[Context] {.async.} =
    let ret = handler(req, ctx)
    debugEcho "$3 $1 $2".format(req.reqMethod, req.url.path, req.hostname)
    return await ret

  return h