我正在开发一个基本的shell解释器,以熟悉Rust.在处理将挂起的作业(job)存储在shell中的表时,我遇到了以下编译器错误消息:
error: cannot invoke tuple struct constructor with private fields [E0450]
let jobs = job::JobsList(vec![]);
^~~~~~~~~~~~~
我不清楚这里什么是私有的.正如您在下面看到的,在我的模块文件中,这两个 struct 都被标记为pub
.那么,什么是秘方?
mod job {
use std::fmt;
pub struct Job {
jid: isize,
pid: isize,
cmd: String,
}
pub struct JobsList(Vec<Job>);
}
fn main() {
let jobs = job::JobsList(vec![]);
}