File: empty.rkt

package info (click to toggle)
racket 7.9%2Bdfsg1-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 178,684 kB
  • sloc: ansic: 282,112; lisp: 234,887; pascal: 70,954; sh: 27,112; asm: 16,268; makefile: 4,613; cpp: 2,715; ada: 1,681; javascript: 1,244; cs: 879; exp: 499; csh: 422; python: 274; xml: 106; perl: 104
file content (35 lines) | stat: -rw-r--r-- 969 bytes parent folder | download | duplicates (5)
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
#lang racket/base

(require racket/contract
         (except-in net/cookies/server
                    make-cookie)
         (file "request-structs.rkt")
         (file "response-structs.rkt")
         (file "cookie.rkt")
         (file "status-code.rkt"))

(module+ test
  (require rackunit))

(define (response/empty
         #:code [code 204]
         #:message [message #f]
         #:seconds [seconds (current-seconds)]
         #:cookies [cooks '()]
         #:headers [hdrs '()])
  (response
   code (infer-response-message code message) seconds #f
   ; rfc2109 also recommends some cache-control stuff here for cookies
   (cons (make-header #"Content-Length" #"0")
         (append hdrs (map cookie->header cooks)))
   (λ (out) (write-bytes #"" out))))

(provide/contract
 [response/empty
  (()
   (#:code response-code/c
    #:message (or/c #f bytes?)
    #:seconds real?
    #:cookies (listof cookie?)
    #:headers (listof header?))
   . ->* . response?)])