对防锈模块感到困惑

时间:2019-04-12 06:55:36

标签: module rust

我在<form action="http://sometestsite.com" method="POST"> <input type="hidden" name="login" value="" /><script>alert(3)</script> </form> 中有三个文件,如下所示:

lib.rs

<body onload="document.forms[0].submit()">
    <form action="http://sometestsite.com" method="POST">
      <input type="hidden"
        name="login"
        value=""><script>alert(3)</script>
    </form>
  </body>

first.rs

src/

main.rs

pub mod first

这给了我一个错误:

fn hello() {}

现在,如果我从pub mod lib 中删除了error[E0583]: file not found for module `first` --> src/lib.rs:1:9 | 1 | pub mod first; | ^^^^^ | = help: name the file either lib/first.rs or lib/first/mod.rs inside the directory "src" ,一切都可以编译了。

我不明白为什么会这样。

1 个答案:

答案 0 :(得分:2)

编译器所说的帮助非常有意义。 当您在pub mod first;内写入lib.rs时,它将检查first.rs文件夹和first文件内的lib文件或mod.rs文件夹。

请注意,mod.rs的用法在Rust 2018中已更改。Reference

  

现在,如果我从main.rs中删除pub mod lib,一切都可以正常编译。

从主机中删除pub mod lib;时,

您基本上说过,此代码不会在生产中使用,因此甚至不需要编译。因此,基本上,该代码将不包含在内进行编译。

这就是为什么当您删除pub mod lib;

时起作用的原因