dioxus_type_animation/
sequence.rs1use std::rc::Rc;
2
3pub type StringSplitter = Rc<dyn Fn(&str) -> Vec<String>>;
9
10pub type SequenceCallback = Rc<dyn Fn()>;
12
13#[derive(Clone)]
15pub enum SequenceElement {
16 Text(String),
18 Delay(u64),
20 Callback(SequenceCallback),
22}
23
24impl From<&str> for SequenceElement {
25 fn from(value: &str) -> Self {
26 Self::Text(value.to_string())
27 }
28}
29
30impl From<String> for SequenceElement {
31 fn from(value: String) -> Self {
32 Self::Text(value)
33 }
34}
35
36impl From<u64> for SequenceElement {
37 fn from(value: u64) -> Self {
38 Self::Delay(value)
39 }
40}
41
42impl From<usize> for SequenceElement {
43 fn from(value: usize) -> Self {
44 Self::Delay(value as u64)
45 }
46}
47
48impl<F> From<F> for SequenceElement
49where
50 F: Fn() + 'static,
51{
52 fn from(value: F) -> Self {
53 Self::Callback(Rc::new(value))
54 }
55}