From b0cb0f2ff3e8fc516ce1f9eba0b742fcb8973f17 Mon Sep 17 00:00:00 2001 From: Kristin Rutenkolk Date: Fri, 11 Oct 2024 15:18:35 +0200 Subject: [PATCH] add c-layout to struct generation --- src/clj/coffi/mem.clj | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/clj/coffi/mem.clj b/src/clj/coffi/mem.clj index 5d2f98c..cc87166 100644 --- a/src/clj/coffi/mem.clj +++ b/src/clj/coffi/mem.clj @@ -1607,9 +1607,18 @@ (partition 2 2) (map (fn [[hint sym]] (with-meta sym {:tag hint}))) (vec)) - ] + struct-layout (with-c-layout [::struct + (->> + members + (partition 2 2) + (map vec) + (map #(update % 0 typename->coffi-typename)) + (map #(update % 1 keyword)) + (map reverse) + (map vec))])] `(do (defrecord ~typename ~typed-symbols) + (defmethod c-layout ~typename [~'_] ~struct-layout) ) ) )