Update to new preserves API

This commit is contained in:
Tony Garnock-Jones 2019-09-11 15:10:44 +01:00
parent c9c0d8bb09
commit 0013c917b3
1 changed files with 5 additions and 2 deletions

View File

@ -5,6 +5,7 @@
(require (prefix-in preserves: preserves))
(require bitsyntax)
(require (only-in net/rfc6455 ws-idle-timeout))
(require (only-in racket/list index-of))
;; Enrolment
(message-struct Connect (scope)) ;; Client --> Server
@ -34,14 +35,16 @@
;; establish `observe`s, i.e. subscriptions.
(define (decode bs)
(parameterize ((preserves:short-form-labels '#(discard capture observe)))
(parameterize ((preserves:current-placeholder->value
(lambda (v) (vector-ref '#(discard capture observe) v))))
(bit-string-case bs
#:on-short (lambda (fail) (values #f bs))
([ (v :: (preserves:wire-value)) (rest :: binary) ] (values v (bit-string->bytes rest)))
(else (error 'decode "Invalid wire message")))))
(define (encode v)
(parameterize ((preserves:short-form-labels '#(discard capture observe)))
(parameterize ((preserves:current-value->placeholder
(lambda (v) (index-of '(discard capture observe) v eq?))))
(preserves:encode v)))
(define (ping-interval)