Skip to content

Auto语言的代码组织 ​

Auto语言的代码有三个层级

  • mod:模块(Module)。和Rust类似,往往是一个文件或一个文件夹。
  • lib:库(Library)。多个模块组织成一个库,实现一套完整的功能。库的概念和C/C++的Library基本一致。
  • pac:包(Package)。一个或多个库组织成一个代码包。可以用于依赖管理。

模块 ​

Auto语言的模块是代码的基本组织单位,组织规则和Rust类似:

  1. 每个文件是一个mod。
  2. 每个文件夹也是一个mod。文件夹内有一个与文件夹同名的文件作为整个模块的入口。例如net文件夹的模块文件为net/net.at。
  3. 文件夹内其他的文件是该模块的子模块。例如net/http.at对应的模块为net::http。
  4. 整个工程(即库)的入口文件名称和工程的名字一致。

库 ​

包 ​

一个代码包中可以有多个成员:

  • lib - 代码库。一个或多个代码库。
  • exe - 执行文件。一个或多个执行文件。

一般来说,依赖的对象是其他代码包中的lib代码库,而不是执行文件。

TODO: 如何在配置文件级别区分库和包? TODO:只包含一个库的包,是否要分两个层级? TODO: Auto的库和包有点类似于Rust的Crate和Workspace,但是又有所不同,需要弄清楚。

基于 MIT 许可发布。