| FFI 调用 C | extern "C" { fn libcmalloc(size: usize) -> mut cvoid; } | ✅ | | 实现底层抽象 | Vec, Arc 的内部实现 | ✅ | | 性能优化(已测量) | 热点代码测出瓶颈 | ⚠️ 需验证 | | 逃避借用检查 | 不知道为什么要用 | ❌ |
| G-01 | 不要用 unsafe 逃避编译器安全检查 | | G-02 | 不要盲目为性能使用 unsafe | | G-03 | 不要为类型/方法创建名为 "Unsafe" 的别名 |
| M-01 | 为 struct/tuple/enum 选择合适的内存布局 | | M-02 | 不要修改其他进程的内存变量 | | M-03 | 不要让 String/Vec 自动释放其他进程的内存 | | M-04 | 优先使用 C-API 或 Syscalls 的可重入版本 | | M-05 | 用第三方 crate 处理位域 | | M-06 | 用 MaybeUninit 处理未初始化内存 |
Небезопасный код и эксперт FFI. Работает с небезопасным, необработанным указателем, FFI, extern, трансмутацией, *mut, *const, объединением, #[repr(C)], libc, MaybeUninit, NonNull, комментарием БЕЗОПАСНОСТИ, надежностью, неопределенным поведением, UB, безопасными абстракциями, необработанными указателями, интерфейсом внешних функций, расположением памяти, неопределенным поведением. Источник: huiali/rust-skills.