这个
pub(restricted)
语法介绍于
RFC 1422
.它引入了两种指定可见性的新方法:
-
pub(crate)
:使项目对整个当前板条箱可见,但不超过。
-
pub(in path::to::module)
:使项目对路径指定的模块树可见。
pub(self)
句法上的糖分
pub(in self)
属于第二类:
self
只是一条路
super
,请
::foo
,请
bar::baz
等等。这意味着,是的,
发布(self)
使项目对当前模块树可见。
因此,
发布(self)
等于省略
发布(self)
宣言
.这甚至是说
in the RFC
以下内容:
如上所述,定义意味着
pub(self) item
就像一个人刚写的
item
.
RFC还提到了支持这一点的原因:
支持这种通用性级别的主要原因是宏:可以编写扩展到
pub($arg)
项,宏客户端可以传入
自己
作为
$arg
以获得非发布定义的效果。