pub(crate) 函数声明语法是什么意思?什么时候使用?

shi*_*i25 13 rust

我是 Rust 新手,我在开源存储库中遇到了这种函数声明 pub(crate) fn

我以前从未见过这种语法,所以我想知道它是用来做什么的?

iul*_*ian 21

它定义了可见性级别。可见性(隐私)级别的解释如下

语法可见性: pub | 酒吧(板条箱)| 酒吧 ( 自我 ) | 酒吧(超级)| pub(在 SimplePath 中)

pub(in path) 使项目在提供的路径中可见。路径必须是正在声明其可见性的项目的父模块。

pub(crate) 使当前 crate 中的项目可见。

pub(super) 使项目对父模块可见。这相当于 pub(in super)。

pub(self) 使某个项目对当前模块可见。这相当于 pub(in self)。

因此,pub(crate) fn find_key<K, S>(keys: &Chunk<K, S>, key: &K) -> Option<usize>使该find_key函数在包内公开(可供使用),但在包外则不公开。