rumdl_lib/rules/
code_fence_utils.rs1use std::fmt;
2
3#[derive(Debug, PartialEq, Eq, Clone, Copy, Default, Hash)]
5pub enum CodeFenceStyle {
6 #[default]
8 Consistent,
9 Backtick,
11 Tilde,
13}
14
15impl fmt::Display for CodeFenceStyle {
16 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
17 match self {
18 CodeFenceStyle::Backtick => write!(f, "backtick"),
19 CodeFenceStyle::Tilde => write!(f, "tilde"),
20 CodeFenceStyle::Consistent => write!(f, "consistent"),
21 }
22 }
23}
24
25#[cfg(test)]
26mod tests {
27 use super::*;
28
29 #[test]
30 fn test_code_fence_style_default() {
31 let style = CodeFenceStyle::default();
32 assert_eq!(style, CodeFenceStyle::Consistent);
33 }
34
35 #[test]
36 fn test_code_fence_style_equality() {
37 assert_eq!(CodeFenceStyle::Backtick, CodeFenceStyle::Backtick);
38 assert_eq!(CodeFenceStyle::Tilde, CodeFenceStyle::Tilde);
39 assert_eq!(CodeFenceStyle::Consistent, CodeFenceStyle::Consistent);
40
41 assert_ne!(CodeFenceStyle::Backtick, CodeFenceStyle::Tilde);
42 assert_ne!(CodeFenceStyle::Backtick, CodeFenceStyle::Consistent);
43 assert_ne!(CodeFenceStyle::Tilde, CodeFenceStyle::Consistent);
44 }
45
46 #[test]
47 fn test_code_fence_style_display() {
48 assert_eq!(format!("{}", CodeFenceStyle::Backtick), "backtick");
49 assert_eq!(format!("{}", CodeFenceStyle::Tilde), "tilde");
50 assert_eq!(format!("{}", CodeFenceStyle::Consistent), "consistent");
51 }
52
53 #[test]
54 fn test_code_fence_style_debug() {
55 assert_eq!(format!("{:?}", CodeFenceStyle::Backtick), "Backtick");
56 assert_eq!(format!("{:?}", CodeFenceStyle::Tilde), "Tilde");
57 assert_eq!(format!("{:?}", CodeFenceStyle::Consistent), "Consistent");
58 }
59
60 #[test]
61 fn test_code_fence_style_clone() {
62 let style1 = CodeFenceStyle::Backtick;
63 let style2 = style1;
64 assert_eq!(style1, style2);
65 }
66
67 #[test]
68 fn test_code_fence_style_hash() {
69 use std::collections::HashSet;
70
71 let mut set = HashSet::new();
72 set.insert(CodeFenceStyle::Backtick);
73 set.insert(CodeFenceStyle::Tilde);
74 set.insert(CodeFenceStyle::Consistent);
75
76 assert_eq!(set.len(), 3);
77 assert!(set.contains(&CodeFenceStyle::Backtick));
78 assert!(set.contains(&CodeFenceStyle::Tilde));
79 assert!(set.contains(&CodeFenceStyle::Consistent));
80 }
81}