s: (put 'declare-date-header! 'scheme-indent-function 1) (define (declare-date-header! name) (declare-header! name parse-date date? write-date)) ;; emacs: (put 'declare-string-list-header! 'scheme-indent-function 1) (define (declare-string-list-header! name) (declare-header! name split-and-trim list-of-strings? write-list-of-strings)) ;; emacs: (put 'declare-symbol-list-header! 'scheme-indent-function 1) (define (declare-symbol-list-header! name) (declare-header! name (lambda (str) (map string->symbol (split-and-trim str))) (lambda (v) (list-of? v symbol?)) (lambda (v port) (put-list port v put-symbol ", ")))) ;; emacs: (put 'declare-header-list-header! 'scheme-indent-function 1) (define (declare-header-list-header! name) (declare-header! name split-header-names list-of-header-names? write-header-list)) ;; emacs: (put 'declare-integer-header! 'scheme-indent-function 1) (define (declare-integer-header! name) (declare-header! name parse-non-negative-integer non-negative-integer? (lambda (val port) (put-non-negative-integer port val)))) ;; emacs: (put 'declare-uri-reference-header! 'scheme-indent-function 1) (define (declare-uri-reference-header! name) (declare-header! name (lambda (str) (or (string->uri-reference str) (bad-header-component 'uri-reference str))) uri-reference? write-uri)) ;; emacs: (put 'declare-quality-list-header! 'scheme-indent-function 1) (define (declare-quality-list-header! name) (declare-header! name parse-quality-list validate-quality-list write-quality-list)) ;; emacs: (put 'declare-param-list-header! 'scheme-indent-function 1) (define* (declare-param-list-header! name #:optional (val-parser default-val-parser) (val-validator default-val-validator) (val-writer default-val-writer)) (declare-header! name (lambda (str) (parse-param-list str val-parser)) (lambda (val) (validate-param-list val val-validator)) (lambda (val port) (write-param-list val port val-writer)))) ;; emacs: (put 'declare-key-value-list-header! 'scheme-indent-function 1) (define* (declare-key-value-list-header! name #:optional (val-parser default-val-parser) (val-validator default-val-validator) (val-writer default-val-writer)) (declare-header! name (lambda (str) (parse-key-value-list str val-parser)) (lambda (val) (key-value-list? val val-validator)) (lambda (val port) (write-key-value-list val port val-writer)))) ;; emacs: (put 'declare-entity-tag-list-header! 'scheme-indent-function 1) (define (declare-entity-tag-list-header! name) (declare-header! name (lambda (str) (if (string=? str "*") '* (parse-entity-tag-list str))) (lambda (val) (or (eq? val '*) (entity-tag-list? val))) (lambda (val port) (if (eq? val '*) (put-string port "*") (put-entity-tag-list port val))))) ;; emacs: (put 'declare-credentials-header! 'scheme-indent-function 1) (define (declare-credentials-header! name) (declare-header! name parse-credentials validate-credentials write-credentials)) ;; emacs: (put 'declare-challenge-list-header! 'scheme-indent-function 1) (define (declare-challenge-list-header! name) (declare-header! name parse-challenges validate-challenges write-challenges))