在Rust模块中使用可变全局变量

时间:2019-08-27 14:23:43

标签: rust

我有模块string_queue

use crossbeam_utils::thread;
use std::sync::{Arc, Mutex};

pub struct MyText {
    my_text: Arc<Mutex<Vec<String>>>,
}

pub trait MyTextOptions {
    fn new() -> MyText;
    fn add(&self, t: &str);
    fn get(&self) -> String;
}

impl MyTextOptions for MyText {
    fn new() -> MyText {
        unimplemented!();
    }

    fn add(&self, text: &str) {
        unimplemented!();
    }

    fn get(&self) -> String {
        unimplemented!();
    }
}

有没有一种方法可以在该模块中声明一个可变变量,该变量与my_text中定义的pub struct MyText类型相对应,在整个应用程序执行时间内有效,并且可以用作该变量的输入变量。定义了impl MyTextOptions for MyText个函数?

基本上,我正在寻找类似于此Python代码中self.__l = []的用法,而不使用RustPython或类似的Python + Rust混合体。

class MyClass:
    def __init__(self):
        self.__l = []

    def add(self, t):
        self.__l += [t]

    def get(self):
        t = self.__l[0]
        self.__l = self.__l[1:]
        return t

0 个答案:

没有答案