我有以下来源:
src/
main.rs
memory.rs
chunk.rs
内存.rs
我有一个宏:
#[macro_export]
macro_rules! grow_capacity {
( $x:expr ) => {
{
if $x < 8 { 8 } else { $x * 2 }
}
};
}
块.rs
我想使用它:
use crate::memory;
// define struct Chunk
impl Chunk {
pub fn write(&mut self, byte: u8) {
// other lines of code.
self.capacity = memory::grow_capacity!(self.capacity);
}
它给了我错误:
error[E0433]: failed to resolve: could not find `grow_capacity` in `memory`
--> src/chunk.rs:27:28
|
27 | self.capacity = memory::grow_capacity!(self.capacity);
| ^^^^^^^^^^^^^ could not find `grow_capacity` in `memory`
为了使帖子简短,我在Gist上有完整的代码。
如果我把宏放在里面chunk.rs
,那么我可以使用它。我不认为如何跨模块文件使用宏?作品。Rust 改变了它的特性吗?我在 Rust 1.44.1 上。