From beaa3d0e6bdf319c4af9f7a7391409e84568aecf Mon Sep 17 00:00:00 2001 From: Nova Date: Tue, 14 Jun 2022 04:09:42 -0400 Subject: [PATCH] refactor: remove all explicit lifetime specifiers --- src/core/client.rs | 12 ++++++------ src/core/scenegraph.rs | 20 ++++++++++---------- src/nodes/core.rs | 22 +++++++++++----------- src/nodes/spatial.rs | 2 +- 4 files changed, 28 insertions(+), 28 deletions(-) diff --git a/src/core/client.rs b/src/core/client.rs index 03f0303..1246f29 100644 --- a/src/core/client.rs +++ b/src/core/client.rs @@ -5,12 +5,12 @@ use libstardustxr::messenger::Messenger; use mio::net::UnixStream; use std::rc::Rc; -pub struct Client<'a> { - messenger: Messenger<'a>, - scenegraph: Scenegraph<'a>, +pub struct Client { + messenger: Messenger, + scenegraph: Scenegraph, } -impl<'a> Client<'a> { +impl Client { pub fn from_connection(connection: UnixStream) -> Rc { let client = Rc::new(Client { messenger: Messenger::new(connection), @@ -25,10 +25,10 @@ impl<'a> Client<'a> { self.messenger.dispatch(&self.scenegraph) } - pub fn get_messenger(&self) -> &Messenger<'a> { + pub fn get_messenger(&self) -> &Messenger { &self.messenger } - pub fn get_scenegraph(&self) -> &Scenegraph<'a> { + pub fn get_scenegraph(&self) -> &Scenegraph { &self.scenegraph } } diff --git a/src/core/scenegraph.rs b/src/core/scenegraph.rs index ea2ef06..ae6443f 100644 --- a/src/core/scenegraph.rs +++ b/src/core/scenegraph.rs @@ -12,38 +12,38 @@ use dashmap::DashMap; use rustc_hash::FxHasher; #[derive(Default)] -pub struct Scenegraph<'a> { - client: RefCell>>, - nodes: DashMap>, BuildHasherDefault>, +pub struct Scenegraph { + client: RefCell>, + nodes: DashMap, BuildHasherDefault>, } -impl<'a> Scenegraph<'a> { - pub fn get_client(&self) -> Rc> { +impl Scenegraph { + pub fn get_client(&self) -> Rc { self.client.borrow().upgrade().unwrap() } - pub fn set_client(&self, client: &Rc>) { + pub fn set_client(&self, client: &Rc) { *self.client.borrow_mut() = Rc::downgrade(client); } - pub fn add_node(&self, node: Node<'a>) -> RcCell> { + pub fn add_node(&self, node: Node) -> RcCell { let path = node.get_path().to_string(); let node_rc = RcCell::new(node); self.nodes.insert(path, node_rc.clone()); node_rc } - pub fn get_node(&self, path: &str) -> Option>> { + pub fn get_node(&self, path: &str) -> Option> { Some(self.nodes.get(path)?.clone()) } - pub fn remove_node(&self, path: &str) -> Option>> { + pub fn remove_node(&self, path: &str) -> Option> { let (_, node) = self.nodes.remove(path)?; Some(node) } } -impl<'a> scenegraph::Scenegraph for Scenegraph<'a> { +impl scenegraph::Scenegraph for Scenegraph { fn send_signal(&self, path: &str, method: &str, data: &[u8]) -> Result<(), ScenegraphError> { self.get_node(path) .ok_or(ScenegraphError::NodeNotFound)? diff --git a/src/nodes/core.rs b/src/nodes/core.rs index 94b8647..63b5219 100644 --- a/src/nodes/core.rs +++ b/src/nodes/core.rs @@ -16,23 +16,23 @@ use rustc_hash::FxHasher; pub type Signal = fn(&Node, Rc, &[u8]) -> Result<()>; pub type Method = fn(&Node, Rc, &[u8]) -> Result>; -pub struct Node<'a> { +pub struct Node { uid: String, - client: Weak>, + client: Weak, path: String, // trailing_slash_pos: usize, local_signals: HashMap>, local_methods: HashMap>, destroyable: bool, - alias: Option>, + alias: Option, pub spatial: Option>, pub field: Option>, pub pulse_sender: Option>, } -impl<'a> Node<'a> { - pub fn get_client(&self) -> Option>> { +impl Node { + pub fn get_client(&self) -> Option> { self.client.clone().upgrade() } // pub fn get_name(&self) -> &str { @@ -45,7 +45,7 @@ impl<'a> Node<'a> { self.destroyable } - pub fn create(client: Weak>, parent: &str, name: &str, destroyable: bool) -> Self { + pub fn create(client: Weak, parent: &str, name: &str, destroyable: bool) -> Self { let mut path = parent.to_string(); path.push('/'); path.push_str(name); @@ -157,16 +157,16 @@ impl<'a> Node<'a> { // } } -struct Alias<'a> { - original: WeakCell>, +struct Alias { + original: WeakCell, signals: Vec, methods: Vec, } -impl<'a> Alias<'a> { +impl Alias { pub fn add_to( - node: &RcCell>, - original: &RcCell>, + node: &RcCell, + original: &RcCell, signals: Vec, methods: Vec, ) { diff --git a/src/nodes/spatial.rs b/src/nodes/spatial.rs index c607df8..702b96e 100644 --- a/src/nodes/spatial.rs +++ b/src/nodes/spatial.rs @@ -12,7 +12,7 @@ use std::rc::Rc; use std::sync::Arc; pub struct Spatial { - // node: WeakCell>, + // node: WeakCell, parent: RwLock>>, transform: RwLock, }