]> uap-core.de Git - note.git/commitdiff
extend UiSourceList API
authorOlaf Wintermann <olaf.wintermann@gmail.com>
Thu, 21 May 2026 17:36:08 +0000 (19:36 +0200)
committerOlaf Wintermann <olaf.wintermann@gmail.com>
Thu, 21 May 2026 17:36:08 +0000 (19:36 +0200)
ui-rs/src/ui/toolkit.rs

index fdbdc5e56953756b111b362c1bd329cbacd03521..60c08e84bcbd60232f0d241b87717f8c495773d7 100644 (file)
@@ -718,6 +718,18 @@ impl<T> UiSourceList<T> {
         }
     }
 
+    pub fn len(&self) -> usize {
+        self.sublists.len()
+    }
+
+    pub fn get(&self, index: usize) -> Option<&SubList<T>> {
+        self.sublists.get(index)
+    }
+
+    pub fn get_mut(&mut self, index: usize) -> Option<&mut SubList<T>> {
+        self.sublists.get_mut(index)
+    }
+
     pub fn push(&mut self, sublist: SubList<T>) {
         unsafe {
             ui_list_append(self.ptr, sublist.handle as *mut c_void);
@@ -759,6 +771,19 @@ impl<T> UiSourceList<T> {
     }
 }
 
+impl<T> std::ops::Index<usize> for UiSourceList<T> {
+    type Output = SubList<T>;
+
+    fn index(&self, index: usize) -> &Self::Output {
+        &self.sublists[index]
+    }
+}
+
+impl<T> std::ops::IndexMut<usize> for UiSourceList<T> {
+    fn index_mut(&mut self, index: usize) -> &mut Self::Output {
+        &mut self.sublists[index]
+    }
+}
 
 /* -------------------------------- List -------------------------------- */