避免使用我的宏将“use foo”放入每个文件中

问题描述 投票:0回答:1

我有一个定义使用正则表达式板条箱的宏的文件。是否有机会避免使用我的宏将

use regex::Regex;
放入所有文件中?

rust macros
1个回答
0
投票

我能想到两种可能性:

  1. 在使用结构的任何地方都使用完全限定路径:
    macro_rules! foo {
        () => {
            let x: ::regex::Regex;
        }
    }
    
  2. 将导入添加到宏中(在不与环境中的导入发生冲突的范围内):
    macro_rules! foo {
        () => {{ // NB: double `{` to create a scope
            use ::regex::Regex;
            let x: Regex;
        }}
    }
    
© www.soinside.com 2019 - 2024. All rights reserved.