结构,模块和文件类似STL

时间:2019-04-01 16:39:22

标签: rust

按照Rust的书,我创建了一个具有以下结构的项目:

├── src
    ├── lib.rs
    ├── main.rs
    └── list.rs

,文件内容为:

list.rs

use std::marker::PhantomData;

#[derive(Debug)]
pub struct List<T> {
    phantom: PhantomData<T>
}

impl<T> List<T> {
    pub fn new() -> List<T> {
        List { phantom: PhantomData }
    }
}

main.rs

extern crate stl;

use stl::list::List;

fn main() {
    let l: List<i32> = List::new();
    println!("{:?}", l);
}

lib.rs

pub mod list;

我的目标是使用STL中的结构;换句话说,我想写这样的东西:

use stl;// or use stl::{List, Vector};

fn main() {
    let l: List<i32> = List::new();
    let v: Vector<u64> = Vector::new();
}

如果我在list.rs中写

mod stl {
    pub struct List<T> {
        // ...
    }
}

在main.rs中引用List的唯一方法是

let l: stl::list::stl::List<i32> = ...;

这太可怕了

如何为我的目的在模块和文件之间拆分结构?

0 个答案:

没有答案