From e5a14c4f9d2a70929d2675bff32f77d523b67822 Mon Sep 17 00:00:00 2001 From: Leif Andersen Date: Mon, 25 Sep 2017 17:14:06 -0400 Subject: [PATCH] Add make-serialize-info example. --- .../scribblings/reference/serialization.scrbl | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/pkgs/racket-doc/scribblings/reference/serialization.scrbl b/pkgs/racket-doc/scribblings/reference/serialization.scrbl index 6bd6205e93..c0e8600371 100644 --- a/pkgs/racket-doc/scribblings/reference/serialization.scrbl +++ b/pkgs/racket-doc/scribblings/reference/serialization.scrbl @@ -583,6 +583,38 @@ This directory path is used as a last resort when relative path with respect to the top level. Usually, it should be @racket[(or (current-load-relative-directory) (current-directory))].} +@examples[ + #:eval ser-eval + (struct pie (type) + #:mutable + #:property prop:serializable + (make-serialize-info + (λ (this) + (vector (pie-type this))) + 'pie-beam + #t + (or (current-load-relative-directory) (current-directory)))) + (define pie-beam + (make-deserialize-info + (λ (type) + (pie type)) + (λ () + (define pie-pattern (pie 'transporter-error)) + (values pie-pattern + (λ (type) + (set-pie-type! pie-pattern type)))))) + (define original-pie + (pie 'apple)) + original-pie + (define pie-in-transit + (serialize original-pie)) + pie-in-transit + (define beamed-up-pie + (deserialize pie-in-transit)) + beamed-up-pie + (pie-type beamed-up-pie) + (equal? beamed-up-pie original-pie)] + @; ---------------------------------------------------------------------- @close-eval[ser-eval]