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

Reply via email to