Ciao,
I started testing access to structures defined in C
libraries. My first stab at it is:
(define-syntax define-c-struct-accessors
(syntax-rules ()
((_ ?setter ?getter ?offset ?type-setter ?type-getter)
(begin
(define (?setter struct-pointer value)
(?type-setter struct-pointer ?offset value))
(define (?getter struct-pointer)
(?type-getter struct-pointer ?offset))))))
(define-c-struct-accessors
struct-flock-l_whence-set!
struct-flock-l_whence-ref
2
pointer-set-c-short!
pointer-ref-c-signed-short)
that is to define a setter and a getter as functions for
each field of the structure.
Do you think that it is better to have:
1. two syntaxes that convert, for example:
(struct-flock-l_whence-set! lock SEEK_SET)
to:
(pointer-set-c-short! lock 2 SEEK_SET)
2. a single accessor like this (with case-lambda):
(struct-flock-l_whence lock SEEK_SET)
(struct-flock-l_whence lock)
3. or the two setter/getter functions?
4. all of the above?
--
Marco Maggi