Hi, I am trying to convert an FFI cstruct definition into a union. More exactly, the previous definition was : (define-cstruct _XEvent ((type EventType)))
with EventType being defined elsewhere. But this was an incomplete definition, and I now want to translate the following C union: typedef union _XEvent { int type; /* must not be changed; first element */ XAnyEvent xany; XKeyEvent xkey; // ... the rest for later } XEvent; I searched the collects directory, but I see only a single and too simple _union use, so I'm not sure how to use it. I guessed the following: (define _XEvent (_union EventType ; type _XAnyEvent ; xany _XKeyEvent ; xkey ; etc. )) (define (XEvent-type ev) (union-ref ev 0)) (define (XEvent-xany ev) (union-ref ev 1)) (define (XEvent-xkey ev) (union-ref ev 2)) However, now I don't use define-cstruct anymore (it would not work with _union, would it?), so I don't have all the -tag, -pointer, etc. bindings, which I need. What should I do ? Thanks, Laurent
____________________ Racket Users list: http://lists.racket-lang.org/users