我如何在 Rust 中使用自由类型绑定?

How do I use freetype bindings in Rust?

我一直在从事一个需要与字体交互的相当基础的项目。计划是使用 FreeType by the Servo team. However, I'm having a hard time figuring out how exactly one is to use it. I've new to FreeType, so I'm following their tutorial 的绑定。在这一点上让我感到困惑的是创建句柄。我确实尝试过(诚然可笑)创建库句柄,例如:

use freetype::freetype;
let library: freetype::FT_Library;

不出所料,那是行不通的。我已决定为该项目使用 font_kit,因为我相当确定这有点超出我的理解范围。但我仍然很想知道如何才能真正做到这一点。

看来你可以使用std::ptr::null_mut来初始化freetype::freetype::FT_Library:

fn main() {
    let mut lib: freetype::freetype::FT_Library = std::ptr::null_mut();
    let result = unsafe {
        freetype::freetype::FT_Init_FreeType(&mut lib)
    };
    println!("Initialization succeed:{}",  freetype::succeeded(result));
}

基于example.