在餐饮业,餐馆中会有一些地方被称之为*前台*(*front of house*),还有另外一些地方被称之为*后台*(*back of house*)。前台是招待顾客的地方,在这里,店主可以为顾客安排座位,服务员接受顾客下单和付款,调酒师会制作饮品。后台则是由厨师工作的厨房,洗碗工的工作地点,以及经理做行政工作的地方组成。
我们可以将函数放置到嵌套的模块中,来使我们的 crate 结构与实际的餐厅结构相同。通过执行`cargo new --lin restaurant`,来创建一个新的名为`restaurant`的库。然后将示例 7-1中所罗列出来的代码放入*src/lib.rs*中,来定义一些模块和函数。
这个树展示了一些模块是如何被嵌入到另一个模块的(例如,`hosting`嵌套在`front_of_house`中)。这个树还展示了一些模块是互为*兄弟*(*siblings*)的,这意味着它们定义在同一模块中(`hosting`和`serving`被一起定义在`front_of_house`中)。继续沿用家庭关系的比喻,如果一个模块 A 被包含在模块 B 中,我们将模块 A 称为模块 B 的*子*(*child*),模块 B 则是模块 A 的*父*(*parent*)。注意,整个模块树都植根于名为`crate`的隐式模块下。