refactor: remove many unwrap calls
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
use crate::core::client::Client;
|
||||
|
||||
use super::Node;
|
||||
use crate::core::client::Client;
|
||||
use color_eyre::eyre::{ensure, Result};
|
||||
use std::sync::{Arc, Weak};
|
||||
|
||||
#[derive(Debug, Default, Clone)]
|
||||
@@ -24,22 +24,23 @@ impl Alias {
|
||||
name: &str,
|
||||
original: &Arc<Node>,
|
||||
info: AliasInfo,
|
||||
) -> Option<Arc<Node>> {
|
||||
let node_free = client
|
||||
.scenegraph
|
||||
.get_node(&(parent.to_string() + "/" + name))
|
||||
.is_none();
|
||||
) -> Result<Arc<Node>> {
|
||||
ensure!(
|
||||
client
|
||||
.scenegraph
|
||||
.get_node(&(parent.to_string() + "/" + name))
|
||||
.is_none(),
|
||||
"Node already exists"
|
||||
);
|
||||
|
||||
node_free.then(|| {
|
||||
let node = Node::create(client, parent, name, true).add_to_scenegraph();
|
||||
let alias = Alias {
|
||||
node: Arc::downgrade(&node),
|
||||
original: Arc::downgrade(original),
|
||||
info,
|
||||
};
|
||||
let alias = original.aliases.add(alias);
|
||||
let _ = node.alias.set(alias);
|
||||
node
|
||||
})
|
||||
let node = Node::create(client, parent, name, true).add_to_scenegraph()?;
|
||||
let alias = Alias {
|
||||
node: Arc::downgrade(&node),
|
||||
original: Arc::downgrade(original),
|
||||
info,
|
||||
};
|
||||
let alias = original.aliases.add(alias);
|
||||
let _ = node.alias.set(alias);
|
||||
Ok(node)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user