ดีไซน์แพตเทิร์นสำหรับ FFI (FFI Patterns)
การเขียนโค้ดติดต่อกับภาษาภายนอก (FFI) ถือเป็นศาสตร์ที่มีเนื้อหากว้างขวางและลึกซึ้งในตัวเอง อย่างไรก็ดี ในหัวข้อนี้มีแบบแผนการออกแบบที่ช่วยทำหน้าที่เป็นเข็มทิศนำทาง และช่วยหลีกเลี่ยงกับดักอันตรายสำหรับผู้ที่ยังไม่คุ้นเคยกับการเขียน unsafe Rust
ส่วนนี้รวบรวมดีไซน์แพตเทิร์นที่มีประโยชน์อย่างยิ่งเมื่อต้องทำ FFI:
-
API แบบอิงออบเจกต์ (Object-Based API) — การออกแบบ API ที่มีคุณสมบัติด้านความปลอดภัยของหน่วยความจำที่ดีเยี่ยม และมีเส้นแบ่งที่ชัดเจนระหว่างส่วนที่ปลอดภัย (safe) กับส่วนที่ไม่ปลอดภัย (unsafe)
-
การรวมชนิดข้อมูลเข้าสู่ตัวห่อหุ้ม (Type Consolidation into Wrappers) — การจัดกลุ่มชนิดข้อมูล Rust หลายตัวเข้าด้วยกันให้อยู่ในรูปของ “ออบเจกต์” ที่ซ่อนรายละเอียดภายใน (opaque object)