summaryrefslogtreecommitdiff
path: root/iced_builder/src/types
diff options
context:
space:
mode:
authorpml68 <contact@pml68.dev>2024-12-25 20:02:40 +0100
committerpml68 <contact@pml68.dev>2024-12-25 20:02:40 +0100
commit87086cde68a5b573abcdf0884a2b48d0fbeafa97 (patch)
tree63b0d7f265eec8958b674856b16f87df12fdd6e8 /iced_builder/src/types
parentfeat: move rustfmt.toml to `iced_builder` (diff)
downloadiced-builder-87086cde68a5b573abcdf0884a2b48d0fbeafa97.tar.gz
refactor: remove uses find_parent internally, change element_list to &[]
Diffstat (limited to 'iced_builder/src/types')
-rw-r--r--iced_builder/src/types/element_name.rs2
-rwxr-xr-xiced_builder/src/types/rendered_element.rs24
2 files changed, 14 insertions, 12 deletions
diff --git a/iced_builder/src/types/element_name.rs b/iced_builder/src/types/element_name.rs
index 5567cff..e172227 100644
--- a/iced_builder/src/types/element_name.rs
+++ b/iced_builder/src/types/element_name.rs
@@ -17,7 +17,7 @@ pub enum ElementName {
}
impl ElementName {
- pub const ALL: [Self; 7] = [
+ pub const ALL: &'static [Self; 7] = &[
Self::Text(String::new()),
Self::Button(String::new()),
Self::SVG(String::new()),
diff --git a/iced_builder/src/types/rendered_element.rs b/iced_builder/src/types/rendered_element.rs
index 35198a1..d4d1a6c 100755
--- a/iced_builder/src/types/rendered_element.rs
+++ b/iced_builder/src/types/rendered_element.rs
@@ -95,7 +95,8 @@ impl RenderedElement {
}
pub fn remove(&mut self, element: &RenderedElement) {
- if let Some(child_elements) = self.child_elements.as_mut() {
+ let parent = self.find_parent(element).unwrap();
+ if let Some(child_elements) = parent.child_elements.as_mut() {
if let Some(index) =
child_elements.iter().position(|x| x == element)
{
@@ -132,8 +133,7 @@ impl RenderedElement {
match action {
Action::Stop => Ok(()),
Action::Drop => {
- let parent = element_tree.find_parent(self).unwrap();
- parent.remove(self);
+ element_tree.remove(self);
Ok(())
}
@@ -141,8 +141,7 @@ impl RenderedElement {
"the action was of kind `AddNew`, but invoking it on an existing element tree is not possible".into(),
),
Action::PushFront(id) => {
- let old_parent = element_tree.find_parent(self).unwrap();
- old_parent.remove(self);
+ element_tree.remove(self);
let new_parent = element_tree.find_by_id(id).unwrap();
new_parent.push_front(self);
@@ -150,8 +149,7 @@ impl RenderedElement {
Ok(())
}
Action::InsertAfter(parent_id, target_id) => {
- let old_parent = element_tree.find_parent(self).unwrap();
- old_parent.remove(self);
+ element_tree.remove(self);
let new_parent = element_tree.find_by_id(parent_id).unwrap();
new_parent.insert_after(target_id, self);
@@ -161,9 +159,9 @@ impl RenderedElement {
}
}
- fn preset_options(mut self, options: Vec<&str>) -> Self {
+ fn preset_options<'a>(mut self, options: &[&'a str]) -> Self {
for opt in options {
- let _ = self.options.insert(opt.to_owned(), None);
+ let _ = self.options.insert(opt.to_string(), None);
}
self
}
@@ -445,8 +443,12 @@ impl Action {
}
pub fn text(text: &str) -> RenderedElement {
- RenderedElement::new(ElementName::Text(text.to_owned()))
- .preset_options(vec!["size", "line_height", "width", "height"])
+ RenderedElement::new(ElementName::Text(text.to_owned())).preset_options(&[
+ "size",
+ "line_height",
+ "width",
+ "height",
+ ])
}
pub fn button(text: &str) -> RenderedElement {