X-Git-Url: https://git.jsancho.org/?p=guile-assimp.git;a=blobdiff_plain;f=src%2Flow-level.scm;fp=src%2Flow-level.scm;h=a184082929ae37f43c003f5e384141e6e5ee86c1;hp=0000000000000000000000000000000000000000;hb=63cca7faa50c513c8aa201d15336e555438fddb5;hpb=97d868192018795a86bf88d6534c132303f6cd08 diff --git a/src/low-level.scm b/src/low-level.scm new file mode 100644 index 0000000..a184082 --- /dev/null +++ b/src/low-level.scm @@ -0,0 +1,33 @@ +;;; guile-assimp, foreign interface to libassimp +;;; Copyright (C) 2014 by Javier Sancho Fernandez +;;; +;;; This program is free software: you can redistribute it and/or modify +;;; it under the terms of the GNU General Public License as published by +;;; the Free Software Foundation, either version 3 of the License, or +;;; (at your option) any later version. +;;; +;;; This program is distributed in the hope that it will be useful, +;;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with this program. If not, see . + + +(define-module (assimp low-level) + #:use-module (system foreign)) + + +(define-syntax define-struct-parser + (lambda (x) + (syntax-case x () + ((_ name (field type) ...) + (with-syntax (((field-name ...) (map car #'((field type) ...))) + ((field-type ...) (map cadr #'((field type) ...)))) + #'(define (name pointer) + (map cons + '(field-name ...) + (parse-c-struct pointer (list field-type ...))))))))) + +(export define-struct-parser)