react_rs_elements/
types.rs1pub enum InputType {
2 Text,
3 Password,
4 Email,
5 Number,
6 Tel,
7 Url,
8 Search,
9 Date,
10 Time,
11 DatetimeLocal,
12 Month,
13 Week,
14 Color,
15 File,
16 Hidden,
17 Checkbox,
18 Radio,
19 Range,
20 Submit,
21 Reset,
22 Button,
23 Image,
24}
25
26impl InputType {
27 pub fn as_str(&self) -> &'static str {
28 match self {
29 Self::Text => "text",
30 Self::Password => "password",
31 Self::Email => "email",
32 Self::Number => "number",
33 Self::Tel => "tel",
34 Self::Url => "url",
35 Self::Search => "search",
36 Self::Date => "date",
37 Self::Time => "time",
38 Self::DatetimeLocal => "datetime-local",
39 Self::Month => "month",
40 Self::Week => "week",
41 Self::Color => "color",
42 Self::File => "file",
43 Self::Hidden => "hidden",
44 Self::Checkbox => "checkbox",
45 Self::Radio => "radio",
46 Self::Range => "range",
47 Self::Submit => "submit",
48 Self::Reset => "reset",
49 Self::Button => "button",
50 Self::Image => "image",
51 }
52 }
53}
54
55pub enum LinkTarget {
56 Self_,
57 Blank,
58 Parent,
59 Top,
60}
61
62impl LinkTarget {
63 pub fn as_str(&self) -> &'static str {
64 match self {
65 Self::Self_ => "_self",
66 Self::Blank => "_blank",
67 Self::Parent => "_parent",
68 Self::Top => "_top",
69 }
70 }
71}
72
73pub enum FormMethod {
74 Get,
75 Post,
76 Dialog,
77}
78
79impl FormMethod {
80 pub fn as_str(&self) -> &'static str {
81 match self {
82 Self::Get => "get",
83 Self::Post => "post",
84 Self::Dialog => "dialog",
85 }
86 }
87}
88
89#[cfg(test)]
90mod tests {
91 use super::*;
92
93 #[test]
94 fn test_input_type() {
95 assert_eq!(InputType::Checkbox.as_str(), "checkbox");
96 assert_eq!(InputType::Email.as_str(), "email");
97 assert_eq!(InputType::DatetimeLocal.as_str(), "datetime-local");
98 }
99
100 #[test]
101 fn test_link_target() {
102 assert_eq!(LinkTarget::Blank.as_str(), "_blank");
103 assert_eq!(LinkTarget::Self_.as_str(), "_self");
104 }
105
106 #[test]
107 fn test_form_method() {
108 assert_eq!(FormMethod::Post.as_str(), "post");
109 }
110}