Add make-serialize-info example.
This commit is contained in:
parent
56443e76a9
commit
e5a14c4f9d
|
@ -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
|
relative path with respect to the top level. Usually, it should be
|
||||||
@racket[(or (current-load-relative-directory) (current-directory))].}
|
@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]
|
@close-eval[ser-eval]
|
||||||
|
|
Loading…
Reference in New Issue
Block a user