use std::rc::Rc; use crate::screen::Screen; pub struct DeviceT { pub screen: Screen } impl DeviceT { fn new() -> Self { let screen = Screen::new(); DeviceT { screen } } } pub struct Device { pub shared: Rc } impl Device { pub fn new() -> Self { return Device { shared: Rc::new(DeviceT::new()) } } pub fn share(&self) -> Self { return Device { shared: self.shared.clone() } } }