我正在尝试为某些本地Rust-C绑定构建一个安全的包装。我引用了git2-rs代码库,遇到了以下用法:
use raw;
use util::Binding;
pub struct Buf {
raw: raw::git_buf,
}
use raw
和raw: raw::git_buf
在做什么?我认为这与std::raw
有关。
答案 0 :(得分:2)
raw
是the identifier that git2-rs chooses to give to the libgit2_sys crate:
extern crate libgit2_sys as raw;
use raw
因此等同于use libgit2_sys
,并且在概念上与use regex
或use itertools
相同-它只是将板条箱纳入此模块的范围。
请重读Referring to Names in Different Modules中的The Rust Programming Language,以重温use
语句。
raw: raw::git_buf
将结构raw
的字段Buf
定义为raw::git_buf
类型。这等效于raw: libgit2_sys::git_buf
,并且在概念上与raw: String
或raw: i32
相同。
请重新阅读Defining and Instantiating Structs,以复习如何定义结构。