Tema: ffi
-
CString en un límite de FFI: distinguir un puntero prestado de la transferencia de propiedad
Mantener vivo al propietario del CString en las llamadas por préstamo, y usar la conversión de propiedad a puntero en bruto solo bajo un contrato de devolución explícito.
-
Diseño de FFI en Rust: repr(C) en una estructura externa no repara los campos anidados
Revisar cada campo que cruza un límite de ABI de C y verificar el diseño en cada destino compatible.
-
Propiedad de recursos en Rust FFI: empareja el constructor foráneo con su destructor real
Define de forma explícita la asignación, la liberación y la vida útil de los callbacks en un wrapper de Rust acotado alrededor de recursos foráneos.
-
Unwinding en FFI de Rust: elegir un límite explícito para panics y excepciones
Antes de elegir la ABI del límite, hay que separar los retornos de error ordinarios, los panics de Rust y las excepciones foráneas.
Legible por máquina: JSON