git2-rs包装器中的raw和raw:raw :: git_buf使用是什么意思?

时间:2018-09-16 16:43:02

标签: rust

我正在尝试为某些本地Rust-C绑定构建一个安全的包装。我引用了git2-rs代码库,遇到了以下用法:

use raw;
use util::Binding;
pub struct Buf {
    raw: raw::git_buf,
}

use rawraw: raw::git_buf在做什么?我认为这与std::raw有关。

1 个答案:

答案 0 :(得分:2)

rawthe identifier that git2-rs chooses to give to the libgit2_sys crate

extern crate libgit2_sys as raw;

use raw因此等同于use libgit2_sys,并且在概念上与use regexuse 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: Stringraw: i32相同。

请重新阅读Defining and Instantiating Structs,以复习如何定义结构。