summaryrefslogtreecommitdiffstats
path: root/test/src/selector.rs
diff options
context:
space:
mode:
authorLibravatar Héctor <hector@hecrj.dev>2024-12-17 17:28:46 +0100
committerLibravatar GitHub <noreply@github.com>2024-12-17 17:28:46 +0100
commitf2c9b6b2ffc50d67d9789e77cb55eeb2a0ebe470 (patch)
tree4941905adf134468acc079610bb6f25d7461d543 /test/src/selector.rs
parenta687a837653a576cb0599f7bc8ecd9c6054213a9 (diff)
parente5545aaa579f428e45853d125ac86155d8395104 (diff)
downloadiced-f2c9b6b2ffc50d67d9789e77cb55eeb2a0ebe470.tar.gz
iced-f2c9b6b2ffc50d67d9789e77cb55eeb2a0ebe470.tar.bz2
iced-f2c9b6b2ffc50d67d9789e77cb55eeb2a0ebe470.zip
Merge pull request #2698 from iced-rs/feature/test-crate
Headless Mode Testing
Diffstat (limited to 'test/src/selector.rs')
-rw-r--r--test/src/selector.rs29
1 files changed, 29 insertions, 0 deletions
diff --git a/test/src/selector.rs b/test/src/selector.rs
new file mode 100644
index 00000000..7b8dcb7e
--- /dev/null
+++ b/test/src/selector.rs
@@ -0,0 +1,29 @@
+//! Select widgets of a user interface.
+use crate::core::text;
+use crate::core::widget;
+
+/// A selector describes a strategy to find a certain widget in a user interface.
+#[derive(Debug, Clone, PartialEq, Eq)]
+pub enum Selector {
+ /// Find the widget with the given [`widget::Id`].
+ Id(widget::Id),
+ /// Find the widget containing the given [`text::Fragment`].
+ Text(text::Fragment<'static>),
+}
+
+impl From<widget::Id> for Selector {
+ fn from(id: widget::Id) -> Self {
+ Self::Id(id)
+ }
+}
+
+impl From<&'static str> for Selector {
+ fn from(id: &'static str) -> Self {
+ Self::Id(widget::Id::new(id))
+ }
+}
+
+/// Creates [`Selector`] that finds the widget containing the given text fragment.
+pub fn text(fragment: impl text::IntoFragment<'static>) -> Selector {
+ Selector::Text(fragment.into_fragment())
+}