From 8159fdebadb1a7403bfc61a5d8bff9f00001f1dc Mon Sep 17 00:00:00 2001 From: Joshua Suskalo Date: Fri, 17 Sep 2021 14:01:49 -0500 Subject: [PATCH] Allow complex types in native arglists --- src/coffi/ffi.clj | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/coffi/ffi.clj b/src/coffi/ffi.clj index 2d1366f..f3ac162 100644 --- a/src/coffi/ffi.clj +++ b/src/coffi/ffi.clj @@ -740,6 +740,12 @@ :args (s/cat :libspec ::libspec) :ret (s/map-of keyword? any?)) +(s/def ::type + (s/nonconforming + (s/or :simple-type qualified-keyword? + :complex-type (s/cat :base-type qualified-keyword? + :type-args (s/* ::type))))) + (s/def ::defcfn-args (s/and (s/cat :name simple-symbol? @@ -748,7 +754,7 @@ :symbol (s/nonconforming (s/or :string string? :symbol simple-symbol?)) - :native-arglist (s/coll-of qualified-keyword? :kind vector?) + :native-arglist (s/coll-of ::type :kind vector?) :return-type qualified-keyword? :wrapper (s/? (s/cat