|(require ffi/unsafe/define)||package: base|
(define-ffi-definer define-id ffi-lib-expr option ...)
option = #:provide provide-id | #:define core-define-id | #:default-make-fail default-make-fail-expr
(define-id id type-expr bind-option ...)
bind-option = #:c-id c-id | #:wrap wrap-expr | #:make-fail make-fail-expr | #:fail fail-expr
A define-id form binds id by extracting a binding with the name c-id from the library produced by ffi-lib-expr, where c-id defaults to id. The other options support further wrapping and configuration:
The #:make-fail and #:fail options are mutually exclusive; if make-fail-expr is provided, it is applied to 'id to obtain the last argument to get-ffi-obj; if fail-expr is provided, it is supplied directly as the last argument to get-ffi-obj. The make-not-available function is useful as make-fail-expr to cause a use of id to report an error when it is applied if c-id was not found in the foreign library.
If default-make-fail-expr is provided to define-ffi-definer, it serves as the default #:make-fail value for define-id.
(define-ffi-definer define-gtk gtk-lib)
binds define-gtk to extract FFI bindings from gtk-lib, so that gtk_rc_parse could be bound as
If gtk_rc_parse is not found, then define-gtk reports an error immediately. If define-gtk is instead defined with
(define-ffi-definer define-gtk gtk-lib #:default-make-fail make-not-available)
then if gtk_rc_parse is not found in gtk-lib, an error is reported only when gtk_rc_parse is called.
(provide-protected provide-spec ...)