easypdf_markdown/
markdown_warning.rs1use easypdf_core::PageIndex;
4
5#[derive(Clone, Debug, PartialEq, Eq)]
7#[non_exhaustive]
8pub enum MarkdownWarning {
9 EmptyPage {
11 page_index: PageIndex,
13 },
14 TableDetectionUnavailable,
16 ImageExtractionUnavailable,
18 OcrUnavailable {
20 page_index: PageIndex,
22 },
23 ProcessorFailed {
25 message: String,
27 },
28}
29
30#[cfg(test)]
31#[allow(clippy::uninlined_format_args, clippy::float_cmp)]
32mod tests {
33 use super::*;
34 use easypdf_core::PageIndex;
35
36 #[test]
37 fn empty_page_variant() {
38 let w = MarkdownWarning::EmptyPage {
39 page_index: PageIndex::new(0),
40 };
41 let dbg = format!("{:?}", w);
42 assert!(dbg.contains("EmptyPage"));
43 }
44
45 #[test]
46 fn table_detection_unavailable_variant() {
47 let w = MarkdownWarning::TableDetectionUnavailable;
48 assert_eq!(format!("{:?}", w), "TableDetectionUnavailable");
49 }
50
51 #[test]
52 fn image_extraction_unavailable_variant() {
53 let w = MarkdownWarning::ImageExtractionUnavailable;
54 assert_eq!(format!("{:?}", w), "ImageExtractionUnavailable");
55 }
56
57 #[test]
58 fn ocr_unavailable_variant() {
59 let w = MarkdownWarning::OcrUnavailable {
60 page_index: PageIndex::new(2),
61 };
62 let dbg = format!("{:?}", w);
63 assert!(dbg.contains("OcrUnavailable"));
64 }
65
66 #[test]
67 fn processor_failed_variant() {
68 let w = MarkdownWarning::ProcessorFailed {
69 message: "test error".to_string(),
70 };
71 let dbg = format!("{:?}", w);
72 assert!(dbg.contains("ProcessorFailed"));
73 assert!(dbg.contains("test error"));
74 }
75
76 #[test]
77 fn clone_preserves() {
78 let w = MarkdownWarning::EmptyPage {
79 page_index: PageIndex::new(1),
80 };
81 let cloned = w.clone();
82 assert_eq!(w, cloned);
83 }
84
85 #[test]
86 fn partial_eq_works() {
87 let a = MarkdownWarning::TableDetectionUnavailable;
88 let b = MarkdownWarning::TableDetectionUnavailable;
89 let c = MarkdownWarning::ImageExtractionUnavailable;
90 assert_eq!(a, b);
91 assert_ne!(a, c);
92 }
93}