如何将源文件捆绑为一个文件?

时间:2020-06-08 17:18:57

标签: rust

我用cargo new --bin创建了一个Rust二进制项目,最后得到了多个源文件。

但是,Coursera仅接受单一源文件解决方案。

如何将所有项目文件捆绑到一个main.rs文件中?

2 个答案:

答案 0 :(得分:3)

您可以使用rust-sourcebundler之类的工具。

答案 1 :(得分:2)

在Rust中,每个文件都是一个模块。但是,不是意味着每个模块都需要自己的文件。

我用[6] pry(main)> creds => {:installed=> {:client_id=>"[redacted]", :project_id=>"myapp-232803", :auth_uri=>"https://accounts.google.com/o/oauth2/auth", :token_uri=>"https://oauth2.googleapis.com/token", :auth_provider_x509_cert_url=>"https://www.googleapis.com/oauth2/v1/certs", :client_secret=>"[redacted]", :redirect_uris=>["urn:ietf:wg:oauth:2.0:oob", "http://localhost"]}} [7] pry(main)> client_id = Google::Auth::ClientId.from_hash(creds) RuntimeError: Expected top level property 'installed' or 'web' to be present. from /Library/Ruby/Gems/2.6.0/gems/googleauth-0.12.0/lib/googleauth/client_id.rb:99:in `from_hash' 创建了一个Rust二进制项目,最后得到了多个源文件。

cargo new --bin仅创建一个源文件cargo new --bin。如果您创建了其他src/main.rs文件,则必须放置一个.rs声明,以便可以在mod中使用它:

main.rs
// main.rs
mod foobar;
use foobar::Foo;

但是,除了创建单独的文件之外,您还可以通过更改// foobar.rs struct Foo {} 行将内容直接放在main.rs中:

mod