首页 > 解决方案 > “使用”关键字不起作用(从同级文件调用)

问题描述

我正在尝试usevalue.rs文件中获取结构chunk.rs,但它不起作用。这是我当前的文件层次结构。

src
|
|---value.rs
|---chunk.rs
|---other files

这是我的value.rs代码:

pub enum Value {
}

pub struct ValueArray {
    values: Vec<Value>,
}

pub impl Value {
    pub fn new() -> Value {
        Value {
            values: Vec::new(),
        }
    }

    pub fn write_chunk(&mut self, value: Value) {
        self.code.push(value);
    }
}

这是我的chunk.rs代码:

use crate::value::ValueArray; // Error Here

pub enum OpCode {
    OpReturn,
}

pub struct Chunk {
    pub code: Vec<OpCode>,
    constants: value::ValueArray,
}

impl Chunk {
    pub fn new() -> Chunk {
        Chunk {
            code: Vec::new(),
            constants: value::ValueArray::new(),
        }
    }

    pub fn write_chunk(&mut self, byte: OpCode) {
        self.code.push(byte);
    }
}

这是我的确切错误信息:

unresolved import `crate::value`
could not find `value` in the crate rootrustc(E0432)
chunk.rs(1, 12): could not find `value` in the crate root

我不确定为什么它不起作用,因为我在另一个兄弟文件中做了非常相似的事情。我是 Rust 的新手,所以我感谢你的所有帮助。谢谢

标签: rustmodule

解决方案


您需要在文件上定义value模块lib.rs

pub mod value;

推荐阅读