X-Git-Url: https://git.jsancho.org/?p=guile-assimp.git;a=blobdiff_plain;f=src%2Flow-level.scm;h=7842acad035457579ea34c328777fd38028662d7;hp=53bb39eb4d83906996191061a09dc729fc9f573d;hb=3232da94d35e82b13b04e703fe68c5f1f3232838;hpb=917fd378fcc23c07d14442e0ccabcce90f8c9fcc diff --git a/src/low-level.scm b/src/low-level.scm index 53bb39e..7842aca 100644 --- a/src/low-level.scm +++ b/src/low-level.scm @@ -153,3 +153,18 @@ get-element-address sized-string wrap) + + +;;; Function Mappers + +(define-syntax define-foreign-function + (lambda (x) + (syntax-case x (->) + ((_ ((foreign-lib name) arg-type ...) -> return-type) + (with-syntax ((name-string (datum->syntax x (symbol->string (syntax->datum #'name))))) + #'(define name + (pointer->procedure return-type + (dynamic-func name-string foreign-lib) + (list arg-type ...)))))))) + +(export-syntax define-foreign-function)