rust 文件夹结构组织

问题描述 投票:0回答:1
src
 |-- abc
      |-- main.rs
 |-- logger
      |-- mod.rs
Cargo.toml
#Cargo.toml

[[bin]]
name = "abc"  # This will be the name of the binary executable
path = "src/abc/main.rs"
#logger/mod.rs

pub fn call_logger() {
    println!("Got called!");
}

我想从 main.rs (abc/main.rs) 调用这个 fn call_logger(),我该怎么做? 我试过这个方法,

我创建了lib.rs(src/lib.rs),其内容是

#src/lib.rs
pub mod logger;

我能够打电话给

call_logger()
。 只是想知道实现上述任务的正确方法是什么,因为 lib.rs 用于库箱?

rust rust-cargo
1个回答
0
投票

有两种方法可以实现此目的。

  1. path
    属性

    如果您只想要二进制文件(无库),则可以使用

    path
    属性来指定模块应位于的位置:

    // In src/abc/main.rs
    #[path = "../logger/mod.rs"]
    mod logger;
    
  2. 创建一个库。

    创建一个文件

    src/lib.rs
    并放入其中:

    pub mod logger;
    

    然后,您可以将二进制文件中的记录器引用为

    crate_name::logger

© www.soinside.com 2019 - 2024. All rights reserved.