1use rpdfium_core::PdfError;
9use rpdfium_page::PageError;
10
11#[derive(Debug, thiserror::Error)]
13pub enum RenderError {
14 #[error("failed to create rendering surface")]
16 SurfaceCreation,
17
18 #[error("image decode error: {0}")]
20 ImageDecode(String),
21
22 #[error("invalid color: {0}")]
24 InvalidColor(String),
25
26 #[error(transparent)]
28 Page(#[from] PageError),
29
30 #[error(transparent)]
32 Pdf(#[from] PdfError),
33}
34
35#[cfg(test)]
36mod tests {
37 use super::*;
38
39 #[test]
40 fn test_render_error_display() {
41 let err = RenderError::SurfaceCreation;
42 assert_eq!(format!("{err}"), "failed to create rendering surface");
43 }
44
45 #[test]
46 fn test_render_error_image_decode() {
47 let err = RenderError::ImageDecode("bad format".to_string());
48 assert!(format!("{err}").contains("bad format"));
49 }
50
51 #[test]
52 fn test_render_error_is_send_sync() {
53 fn assert_send_sync<T: Send + Sync>() {}
54 assert_send_sync::<RenderError>();
55 }
56}