 FFI boundary should have
<code>repr(C)</code>, as C is the lingua-franca of the programming world. This is also
necessary to soundly do more elaborate tricks with data layout such as
reinterpreting values as a different type.</p>

<p>However, the interaction with Rust&#39;s more exotic data layout features must be
kept in mind. Due to its dual purpose as &quot;for FFI&quot; and &quot;for layout control&quot;,
<code>repr(C)</code> can be applied to types that will be nonsensical or problematic if
passed thr