Rust 使用了函数“print”,但为什么它会警告我“未使用”?

Rust 使用了函数“print”,但为什么它会警告我“未使用”?,rust,rust-cargo,wasm-bindgen,wasm-pack,Rust,Rust Cargo,Wasm Bindgen,Wasm Pack,这里是功能所在 如上所示,wasm模块将仅使用wasm32 unknown目标编译。而打印功能用于: //huangjj27:env_loggersrc\fmt\writer\termcolor\shim_impl.rs:32-48 发布(在板条箱中::fmt::writer)fn打印(&self,buf:&Buffer)->io::结果{ //此impl使用'eprint'和'print'宏 //而不是直接使用流。 //这是为了通过“货物测试”捕获它们的输出` 让log=String::fro

这里是功能所在

如上所示,
wasm
模块将仅使用
wasm32 unknown
目标编译。而
打印
功能用于:

//huangjj27:env_loggersrc\fmt\writer\termcolor\shim_impl.rs:32-48
发布(在板条箱中::fmt::writer)fn打印(&self,buf:&Buffer)->io::结果{
//此impl使用'eprint'和'print'宏
//而不是直接使用流。
//这是为了通过“货物测试”捕获它们的输出`
让log=String::from_utf8_lossy(&buf.0);
#[cfg(全部(target_arch=“wasm32”,target_vendor=“unknown”)]
wasm::打印(&log,self.target);
#[cfg(并非全部(target_arch=“wasm32”,target_vendor=“unknown”)]
匹配自我目标{
Target::Stderr=>eprint!(“{}”,log),
目标::Stdout=>print!(“{}”,log),
}
好(())
}
然后我用以下方法进行测试:

wasm包测试--节点--无默认功能--测试节点
然后我得到了一个令人困惑的问题:

[INFO]: Checking for the Wasm target...
   Compiling env_logger v0.8.2 (C:\Users\huangjj27\Documents\codes\env_logger)
error: function is never used: `print`
   --> src\fmt\writer\wasm.rs:13:31
    |
13  | pub(in crate::fmt::writer) fn print(msg: &str, t: Target) {
    |                               ^^^^^
    |
note: lint level defined here
   --> src\lib.rs:280:54
    |
280 | #![deny(missing_debug_implementations, missing_docs, warnings)]
    |                                                      ^^^^^^^^
    = note: `#[deny(dead_code)]` implied by `#[deny(warnings)]`

error: function is never used: `print`
   --> src\fmt\writer\wasm.rs:13:31
    |
13  | pub(in crate::fmt::writer) fn print(msg: &str, t: Target) {
    |                               ^^^^^
    |
note: lint level defined here
   --> src\lib.rs:280:54
    |
280 | #![deny(missing_debug_implementations, missing_docs, warnings)]
    |                                                      ^^^^^^^^
    = note: `#[deny(dead_code)]` implied by `#[deny(warnings)]`

error: aborting due to previous error

error: could not compile `env_logger`.
warning: build failed, waiting for other jobs to finish...
error: aborting due to previous error

error: could not compile `env_logger`.

To learn more, run the command again with --verbose.
Error: Compilation of your program failed
Caused by: failed to execute `cargo build`: exited with exit code: 101
  full command: "cargo" "build" "--tests" "--target" "wasm32-unknown-unknown"
我的问题是:

  • 为什么会出现警告,而我确实在某处使用了函数
    wasm::print
  • 我该如何处理这个问题?解决或修复它是可以的(但我仍然需要保持lint配置处于启用状态)

  • 如果您只在其他未使用的函数中使用某个函数,那么它仍然会向您发出警告。如果要禁用该函数的警告,可以将
    #[allow(dead_code)]
    放在函数标题前的行上。

    我相信调用
    wasm::print
    的函数也未使用。锈蚀会递归检查。哦,你正在向环境记录器添加wasm支持。我很困惑到底发生了什么。
    [INFO]: Checking for the Wasm target...
       Compiling env_logger v0.8.2 (C:\Users\huangjj27\Documents\codes\env_logger)
    error: function is never used: `print`
       --> src\fmt\writer\wasm.rs:13:31
        |
    13  | pub(in crate::fmt::writer) fn print(msg: &str, t: Target) {
        |                               ^^^^^
        |
    note: lint level defined here
       --> src\lib.rs:280:54
        |
    280 | #![deny(missing_debug_implementations, missing_docs, warnings)]
        |                                                      ^^^^^^^^
        = note: `#[deny(dead_code)]` implied by `#[deny(warnings)]`
    
    error: function is never used: `print`
       --> src\fmt\writer\wasm.rs:13:31
        |
    13  | pub(in crate::fmt::writer) fn print(msg: &str, t: Target) {
        |                               ^^^^^
        |
    note: lint level defined here
       --> src\lib.rs:280:54
        |
    280 | #![deny(missing_debug_implementations, missing_docs, warnings)]
        |                                                      ^^^^^^^^
        = note: `#[deny(dead_code)]` implied by `#[deny(warnings)]`
    
    error: aborting due to previous error
    
    error: could not compile `env_logger`.
    warning: build failed, waiting for other jobs to finish...
    error: aborting due to previous error
    
    error: could not compile `env_logger`.
    
    To learn more, run the command again with --verbose.
    Error: Compilation of your program failed
    Caused by: failed to execute `cargo build`: exited with exit code: 101
      full command: "cargo" "build" "--tests" "--target" "wasm32-unknown-unknown"