前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Rust 日报】2022-1-6 把include_dir带入现代

【Rust 日报】2022-1-6 把include_dir带入现代

作者头像
MikeLoveRust
发布2022-01-21 18:31:11
5300
发布2022-01-21 18:31:11
举报

【博文】把include_dir带入现代

include_dir这个crate提供了一个include_dir!()宏,用于在编译时将整个目录树嵌入你的二进制文件中。这就像include_str!(),但针对整个目录。

我最近做了大量的工作来改善这个crate,增加了想要的功能,改善了编译时间,并巩固了它的核心目标,所以我觉得有必要进行项目更新。

我也想利用这篇博文作为一个机会,征求大家的评论。如果有更多的人关注这个crate,那将是非常好的,而使用像CREV这样的公共审查系统会让人们更有信心在生产中使用include_dir。你可以查看入门指南以了解更多。

Read More: https://adventures.michaelfbryan.com/posts/bringing-include_dir-into-the-modern-era/?utm_source=reddit&utm_medium=social&utm_campaign=modern-include-dir

我的第一个Rust应用,git智能签出,模糊搜索分支,我有点喜欢这门语言❤️🦀

作者的第一个Rust项目,发了一个帖子,热评帮忙做了代码review,给出了一些建议。

我记性不是很好,因此平时做了一些笔记。

这是一些小建议,在你将来写Rust时应该会有帮助。

  • https://github.com/craciuncezar/git-smart-checkout/blob/main/src/git_client.rs#L7 这些都可以只是函数。Rust不是OOP,所以如果你不需要状态,不需要用结构把所有这些东西绑定在一起也是可以的。
  • 对于GitBranch,你可以只需要[derive(Clone)]而不是自己实现它。https://github.com/craciuncezar/git-smart-checkout/blob/main/src/git_client/git_branch.rs#L4 参考文献:https://doc.rust-lang.org/rust-by-example/trait/derive.html
  • 在Rust中,如果你能在可能的情况下将clone给调用者负责,而不是自己去做,那是最好的,在 https://github.com/craciuncezar/git-smart-checkout/blob/main/src/git_client/utils.rs#L3 ,我认为to_vec在底层做了一个clone。我的意思是,如果你需要某个东西的明确拷贝,就用所有权而不是引用,但让调用者决定他是想给你所有权还是克隆这个值给你。
  • 在这个只在一个地方使用的fn的具体案例中,我认为你一般不需要它,但如果你要在多个地方使用它,你可以把Vec传成可变的,并立即排序,不需要clone。你也可以将Vec<GitBranch>包装成一个新的类型,并为其实现fn https://rust-unofficial.github.io/patterns/patterns/behavioural/newtype.html。
  • 你的模块和类型的另一种构造可以是gitgit::clientgit::client::switch_to_branchgit::Branch
  • 当把一个Vec引用传递给一个函数时,通常作为切片接收:branches: &[GitBranch]更方便。调用代码保持不变,但现在可以传递数组以及Vec去调用该函数。通常情况下,String&str也是如此。
  • 我看到你有很多的unwrap。我建议是试一下anyhow。你会发现错误处理会变的容易。

Read More: https://libreddit.spike.codes/r/rust/comments/rwwa35/media_my_first_rust_app_git_smart_checkout_fuzzy/

另外本帖作者提到《Rust设计模式(Rust Design Patterns)》这本书,感兴趣的也可以看看。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Rust语言学习交流 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 【博文】把include_dir带入现代
  • 我的第一个Rust应用,git智能签出,模糊搜索分支,我有点喜欢这门语言❤️🦀
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档