如何仅导入存在的模块?

2023-12-22

我正在做《降临代码》,这是 25 个编程问题的集合,每一天对应一个。

我在自己单独的文件/模块中构造每一天,因此例如 2021 年第 7 天将位于src/years/year2021/day07.rs. So src/years/year2021/mod.rs最终只是pub mods

pub mod day01;
pub mod day02;
pub mod day04;
// and so on...

有没有办法可以动态生成此列表(使用递归宏之类的东西),因此检查模块 day01 是否可以从此上下文访问(或者如果 ./day01.rs 存在)并生成pub mod自动,并在创建文件时添加更多。

最好的是能够检查是否存在任何名称,例如模块或模块内的函数。


你可以使用build.rs https://doc.rust-lang.org/cargo/reference/build-scripts.html根据构建时存在的文件生成模块。

可能是这样的

let years_path = path::Path::new("./src/years");
let mut mod_file = fs::File::create(years_path.join("mod.rs")).unwrap();

let paths = fs::read_dir(years_path).unwrap();

for entry in paths {
    let entry = entry.unwrap();
    if entry.metadata().unwrap().is_dir() {
        writeln!(
            mod_file,
            "mod {};",
            entry.path().file_name().unwrap().to_str().unwrap()
        )
        .unwrap();
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何仅导入存在的模块? 的相关文章

随机推荐

  • 在 JTable 中使用空列作为分隔符

    我正在尝试使用空列作为中的两列之间的分隔线JTable 这是我到目前为止所拥有的图片和代码 我知道我可以使用自定义更改外观TableCellRenderer 在我走这条路之前 有更好的方法吗 任何想法表示赞赏 import javax sw
  • 为什么我的 iPhone 上没有收到任何通知?

    在 Xcode8 3 上使用 swift 3 1 运行它 下面是我在 AppDelegate swift 中的代码 func application application UIApplication didFinishLaunchingW
  • 重写 BuildRenderTree 时是否可以获取 RenderFragments 列表?

    我想知道是否可以引用子元素ChildContent组件的参数 我可以显式地或通过使用级联参数将值从父组件传递给子组件 但是父组件没有很好的方法来 了解 父组件内部的元素ChildContent RenderFragment 一个可能的用例是
  • Smarty PHP 与 AngularJS 发生冲突

    当我在同一模板中使用 AngularJS 时 如何阻止 Smarty 抛出错误 我有一个带有以下代码的 Smarty 页面模板 li p class item i p li 当我在浏览器中查看时 我得到一个空白页面 我的 apache er
  • 将 varchar 值“simple,”转换为数据类型 int 时转换失败

    我为这个问题苦苦挣扎了几天 但我不知道如何解决它 我想group by我的价值观表1 2 3 4 5所以我创建了一个临时表与这个价值观 现在我必须INNER JOIN这张桌子和其他桌子上a value myTempTable num BUT
  • 是否可以像使用 AVRO 的 Kafka 那样为 Google Pub/Sub 主题定义模式?

    据我所知 我们可以在Kafka上定义AVRO模式 并且使用该模式定义的主题将只接受与该模式匹配的数据 在接受队列之前验证数据结构非常有用 Google Pub Sub 中有类似的东西吗 Kafka 本身并不验证模式 因此主题除了一对字节数组
  • 如何使用 setInterval() 返回 Promise

    我试图每 1000 毫秒返回一个 Promise 对象 但我不确定如何访问 Promise 中返回的数据setInterval 打回来 EDIT我似乎不太清楚我的意图 所以我会尝试解释我正在尝试做什么 我进行倒计时 根据指定的结束日期每 1
  • 每个div的Html2canvas分别导出为pdf

    我有页面 它有 6 个具有相同类名 exportpdf 的 div 我使用这些 div 将这些 div 转换为 pdfjspdf and html2canvas var elementTobePrinted angular element
  • COBOL 的 Scons

    我想在 scons 中创建一个与 COBOL 一起使用的构建器 这是一个开始 import re Import env Source src cpy COPYBK1 cpy src cpy COPYBK2 cpy src cpy COPYB
  • Android Camera.takePicture 失败

    作为一个学习练习 我正在编写一个安全应用程序 当任意事件发生时 需要打开相机 拍照 然后关闭相机 而不必担心闪光灯 对焦或显示预览 我按照在线演示制作了一个可以拍照的应用程序 但它使用预览等等 所以我开始努力让它在没有预览的情况下工作 不管
  • C# using 语句如何转换为 Try-Finally

    我正在努力解决这个问题 根据这一页 https msdn microsoft com en us library yh598w02 aspx on Using声明 using 语句可确保即使在调用对象方法时发生异常 也会调用 Dispose
  • 如何设置 Google 地点 API 自动完成文本框的默认值

    我正在开发一个与谷歌示例中的页面足够接近的页面https developers google com maps documentation javascript examples places autocomplete addressfor
  • 您必须为 TextView 提供资源 ID

    我搜索了与此问题相关的现有教程 并且我遵循了该示例 但我仍然遇到同样的错误 当我更改 android R layout simple list item1 行时 它将无法工作 MyCode public class Lisearch ext
  • 如何自动应用 generic.xaml 中的数据模板?

    我有一个自定义控件 它有一个 ContentPresenter 它将任意对象设置为其内容 该对象对其类型没有任何限制 因此我希望该控件根据应用程序定义的任何数据模板或 Generic xaml 中定义的数据模板显示其内容 如果在应用程序中我
  • CSS 和 DIV,带有标题和正文,内容可滚动,侧边栏固定在右侧

    我四处寻找 但无法解决这个问题 所以我转向这里 I want to make a layout that looks like this 布局由三个字段组成 顶部的标题具有固定高度 动态宽度和垂直可滚动内容 标题下方的正文 具有动态宽度和高
  • DLL加载失败:执行“from mpi4py import MPI”时找不到指定的模块

    我正在尝试在 Windows 7 64 位上使用 Mpi4py 1 3 和 python 2 7 我从以下位置下载了可安装版本here http www lfd uci edu 7Egohlke pythonlibs 其中包括 OpenMP
  • 每个人工创建的代码文件的开头是否都有文件头注释?

    我正在经历一体化代码框架 http 1code codeplex com 编码标准文档和建议之一是在每个人工创建的代码文件的开头添加文件头注释 这是我第一次看到这样的建议 对我来说这只是一个不必要且丑陋的混乱 但我想知道是否有人可以解释为什
  • HTC WildFire 上的 SharedPreferences EditText 对话框被挤压

    我在我的 Android 应用程序中以标准方式使用 SharedPreferences 在 HTC WildFire 设备 分辨率 240x320 上 显示虚拟键盘时 EditText 会被挤压 有没有其他人遇到过这个 有解决办法吗 我已经
  • 验证日期序列的顺序是否正确

    我有一个包含 4 列日期的数据框 应该是 col1 首先出现 col2 其次出现 col3 第三出现 col4 最后出现 我想确定哪些行的日期不按顺序排列 这是一个玩具数据框 col1 lt c as Date 2004 1 1 as Da
  • 如何仅导入存在的模块?

    我正在做 降临代码 这是 25 个编程问题的集合 每一天对应一个 我在自己单独的文件 模块中构造每一天 因此例如 2021 年第 7 天将位于src years year2021 day07 rs So src years year2021