<div class="gmail_quote">On Sun, Aug 28, 2011 at 4:41 AM, Luís Oliveira <span dir="ltr"><<a href="mailto:luismbo@gmail.com" target="_blank">luismbo@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">




What kind of macro are you thinking of? In the COMPLEX case, do you<br>
want to abstract away the need to allocate (and free) the structure<br>
object explicitly?<br></blockquote><div><br>I've written a macro define-structure-conversion to flesh out what I see as the way to go.  Eventually, I think this would be best as a couple of key arguments in the defcstruct, similar to FSBV's current :constructor and :deconstructor arguments.<br>

<br>I am stuck however on recursive conversion of slots.  What I have works for the complex example, but if I built on that with a  "real-and-complex" structure and try to convert to foreign, I get an error because the complex slot is already converted by the time it gets in the setf.  Even with an existing pointer, as would be obtained from foreign-slot-pointer, the only function I have at my disposal for translating the slot is translate-to-foreign which creates a new foreign struct, it does not write to an existing struct.  It seems I need something like a setf function.<br>

<br>See the define-structure-conversion <a href="https://github.com/cffi/cffi/blob/4d475077a6c00dd12aa0fc72f8b36b8cb5b8c3d3/src/structures.lisp">definition and test case examples</a>.  Any thoughts on how to proceed?<br>
<br>
Liam<br>

</div><div><br> </div><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204, 204, 204);padding-left:1ex">
<font color="#888888"><br>
--<br>
</font><div><div></div><div>Luís Oliveira<br>
<a href="http://r42.eu/%7Eluis/" target="_blank">http://r42.eu/~luis/</a><br>
</div></div></blockquote></div><br>