尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

如何用 rustlings dev new 创建自己的社区练习项目并用 dev check 校验?

如何用 rustlings dev new 创建自己的社区练习项目并用 dev check 校验? 如何用 rustlings dev new 创建自己的社区练习项目并用 dev check 校验【免费下载链接】rustlings:crab: Small exercises to get you used to reading and writing Rust code!项目地址: https://gitcode.com/gh_mirrors/ru/rustlingsRustlings 内置了对社区练习community exercises的支持你可以用它做两件事围绕某个特定主题编写一套自己的练习或者把官方练习翻译成其他语言并发布。这篇文章的任务是从零创建一个新的社区练习项目目录添加第一个练习然后运行rustlings dev check完成校验得到Everything looks fine!的通过结果。整个过程只需要你已经安装好的rustlings程序本身社区练习和官方练习用的是同一个程序。前置条件安装 Rust 与 Rustlings在开始之前按照安装说明准备环境安装最新版本的 Rust会同时安装 Cargo。Linux 用户需要gcc作为链接器Debiansudo apt install gccFedorasudo dnf install gccmacOS 用户需要 Xcode 及其开发者工具xcode-select --install。安装 Rustlingscargo install rustlings如果安装失败文档给出的排查路径是先用rustup update确认 Rust 是最新版本再尝试带--locked标志的cargo install rustlings --locked。如果之后运行rustlings提示找不到命令多半是~/.cargo/bin不在PATH中把它加入PATH即可。用 rustlings dev new 生成项目目录在你想创建项目的位置运行rustlings dev new PROJECT_NAME其中PROJECT_NAME替换为你要使用的目录名例如你的项目名。命令行为类似于cargo new PROJECT_NAME创建模板目录并写入开始开发所需的全部文件。注意这条命令有明确的副作用——它会在当前目录下创建新目录并默认执行git init初始化一个 Git 仓库如果不想初始化仓库加--no-git参数即可参数定义见 dev 子命令。执行成功后会看到Initialization done ✓的输出。生成的项目包含以下文件见 dev new 实现info.toml练习元数据文件文件内带有大量注释说明格式务必通读一遍。Cargo.toml练习项目的清单文件bin列表初始为空。exercises/练习源码目录。solutions/可选的解答文件目录。README.md、rust-analyzer.toml、.vscode/extensions.json、.gitignore。info.toml中可以设置format_version社区练习的格式版本指示与 Rustlings 程序的兼容性。它不是 Rustlings 程序的版本号但当 Rustlings 对社区练习格式做出不可避免的破坏性变更时你需要提高这个版本并适配新格式否则新版 Rustlings 无法运行这些练习。welcome_message/final_message可选的多行消息分别显示在用户开始和完成全部练习时。每个练习一段[[exercises]]元数据。添加第一个练习在info.toml中填入一个练习的元数据。以下是社区练习文档给出的示例[[exercises]] name intro1 hint To finish this exercise, you need to … These links might help you …生成文件中的注释解释了各字段name练习文件名不含.rs扩展名。dir可选如果想按目录组织练习指定目录名后练习路径为exercises/DIR/NAME.rs否则为exercises/NAME.rs。test可选默认为true。Rustlings 期望练习包含测试并会运行它们设为false后练习只要编译成功就算完成。strict_clippy可选默认为false。Rustlings 总会运行 Clippy设为true后只有没有任何警告才算完成。hint用户请求时显示的多行提示。元数据填好后在exercises/目录下创建intro1.rs。根据 dev check 的实现练习文件需要满足包含main函数可以为空至少有一个// TODO注释来指引用户包含#[test]标注的测试文档建议添加测试如果不想写测试把该练习的test设为false。一个满足这些要求的最小骨架示例注释和测试内容需你自行补全// TODO: 告诉用户这一步要做什么 fn main() { } #[test] fn test_exercise() { }可选地你可以在solutions/目录下添加同名解答文件例如solutions/intro1.rs。官方仓库的练习本身可以作为编写练习的参考。用 rustlings dev update 同步 Cargo.tomlCargo.toml中的bin列表由工具自动维护不要手工编辑。每添加或删除练习后运行rustlings dev update它会根据info.toml重写bin列表见 dev update 实现。bin列表之外的部分可以按需修改在[dependencies]表里添加依赖在[lints.rust]和[lints.clippy]表里为所有练习配置 lints。用 rustlings dev check 校验项目进入项目目录运行rustlings dev checkdev check依次检查以下内容检查逻辑见 src/dev/check.rs任何一项不通过都会报错退出format_version必须等于当前受支持的格式版本。过低会提示迁移到最新版本过高则提示升级 Rustlings 程序。Cargo.toml的bin列表必须与info.toml一致。练习元数据名字非空、不超过 32 个字符、只允许字母数字和下划线、不能重复hint不能为空指定了dir时目录名同样有字符限制。练习文件内容必须有fn main()、至少一个// TODO注释test为true默认时文件必须包含#[test]测试反过来设了test false的文件里不能出现#[test]。exercises/和solutions/目录中只允许README.md和info.toml声明的练习/解答文件且只允许一层目录嵌套。运行所有练习确认它们尚未被解答。运行所有解答文件如果存在并检查其通过rustfmt格式化。全部通过后输出Everything looks fine!这就是校验成功的标志。此外rustlings dev check还有--require-solutions选项要求每个练习都必须有解答文件。常见报错与对应处理以下报错文本来自dev check的实际实现遇到时按提示操作报错信息节选处理方式The fileCargo.tomlis outdated. Runrustlings dev updateto update it. Then runrustlings dev checkagain运行rustlings dev update后重新执行rustlings dev checkformat_version ... (supported version) Please migrate to the latest format version把info.toml的format_version升级到受支持版本format_version ... (supported version) Try updating the Rustlings program升级 Rustlings 程序Themainfunction is missing in the file ...为练习文件补上至少一个空的fn main()Didnt find any// TODOcomment in the file ...在练习文件中添加至少一个// TODO注释The file ... doesnt contain any tests. If you dont want to add tests ... settest false...添加#[test]测试或在info.toml中将该练习设为test falseThe exercise ... is already solved. ... addskip_check_unsolved true...如果这是故意预先写好的入门练习在该练习元数据中加skip_check_unsolved true否则说明练习本身写成了已完成状态Some solutions arent formatted. Runrustfmton them对解答文件运行rustfmt解答文件运行失败会先打印Running all solutions...及失败输出修复该解答文件中的编译或测试错误发布与分享可选校验通过后可以继续添加更多练习然后把项目发布为一个 Git 仓库。使用者只需克隆仓库并在目录内运行rustlings就能开始做你的练习。与官方练习有一个区别解答文件不会在用户完成练习前被隐藏需要你自己信任使用者不会过早打开解答。发布后可以在官方 Rustlings 仓库提 issue 或 pull request把项目加入社区练习列表。至此一条完整的操作路径是rustlings dev new生成项目 → 编辑info.toml并编写练习文件 →rustlings dev update同步bin列表 →rustlings dev check校验看到Everything looks fine!即表示项目结构和练习内容都符合要求可以发布。【免费下载链接】rustlings:crab: Small exercises to get you used to reading and writing Rust code!项目地址: https://gitcode.com/gh_mirrors/ru/rustlings创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表