display/testutil/
mockable_tui.rs1use std::io;
2
3use crossterm::style::Colors;
4
5use crate::{ColorMode, DisplayError, Size, Tui};
6
7#[must_use]
9#[inline]
10pub fn create_unexpected_error() -> DisplayError {
11 DisplayError::Unexpected(io::Error::from(io::ErrorKind::Other))
12}
13
14#[allow(missing_docs, clippy::missing_errors_doc)]
18pub trait MockableTui: Tui {
19 #[inline]
20 fn get_color_mode(&self) -> ColorMode {
21 ColorMode::TwoTone
22 }
23
24 #[inline]
25 fn reset(&mut self) -> Result<(), DisplayError> {
26 Ok(())
27 }
28
29 #[inline]
30 fn flush(&mut self) -> Result<(), DisplayError> {
31 Ok(())
32 }
33
34 #[inline]
35 fn print(&mut self, _s: &str) -> Result<(), DisplayError> {
36 Ok(())
37 }
38
39 #[inline]
40 fn set_color(&mut self, _colors: Colors) -> Result<(), DisplayError> {
41 Ok(())
42 }
43
44 #[inline]
45 fn set_dim(&mut self, _dim: bool) -> Result<(), DisplayError> {
46 Ok(())
47 }
48
49 #[inline]
50 fn set_underline(&mut self, _underline: bool) -> Result<(), DisplayError> {
51 Ok(())
52 }
53
54 #[inline]
55 fn set_reverse(&mut self, _reverse: bool) -> Result<(), DisplayError> {
56 Ok(())
57 }
58
59 #[inline]
60 fn get_size(&self) -> Size {
61 Size::new(100, 100)
62 }
63
64 #[inline]
65 fn move_to_column(&mut self, _x: u16) -> Result<(), DisplayError> {
66 Ok(())
67 }
68
69 #[inline]
70 fn move_next_line(&mut self) -> Result<(), DisplayError> {
71 Ok(())
72 }
73
74 #[inline]
75 fn start(&mut self) -> Result<(), DisplayError> {
76 Ok(())
77 }
78
79 #[inline]
80 fn end(&mut self) -> Result<(), DisplayError> {
81 Ok(())
82 }
83}
84
85impl<T: MockableTui> Tui for T {
86 #[inline]
87 fn get_color_mode(&self) -> ColorMode {
88 <T as MockableTui>::get_color_mode(self)
89 }
90
91 #[inline]
92 fn reset(&mut self) -> Result<(), DisplayError> {
93 <T as MockableTui>::reset(self)
94 }
95
96 #[inline]
97 fn flush(&mut self) -> Result<(), DisplayError> {
98 <T as MockableTui>::flush(self)
99 }
100
101 #[inline]
102 fn print(&mut self, s: &str) -> Result<(), DisplayError> {
103 <T as MockableTui>::print(self, s)
104 }
105
106 #[inline]
107 fn set_color(&mut self, colors: Colors) -> Result<(), DisplayError> {
108 <T as MockableTui>::set_color(self, colors)
109 }
110
111 #[inline]
112 fn set_dim(&mut self, dim: bool) -> Result<(), DisplayError> {
113 <T as MockableTui>::set_dim(self, dim)
114 }
115
116 #[inline]
117 fn set_underline(&mut self, underline: bool) -> Result<(), DisplayError> {
118 <T as MockableTui>::set_underline(self, underline)
119 }
120
121 #[inline]
122 fn set_reverse(&mut self, reverse: bool) -> Result<(), DisplayError> {
123 <T as MockableTui>::set_reverse(self, reverse)
124 }
125
126 #[inline]
127 fn get_size(&self) -> Size {
128 <T as MockableTui>::get_size(self)
129 }
130
131 #[inline]
132 fn move_to_column(&mut self, x: u16) -> Result<(), DisplayError> {
133 <T as MockableTui>::move_to_column(self, x)
134 }
135
136 #[inline]
137 fn move_next_line(&mut self) -> Result<(), DisplayError> {
138 <T as MockableTui>::move_next_line(self)
139 }
140
141 #[inline]
142 fn start(&mut self) -> Result<(), DisplayError> {
143 <T as MockableTui>::start(self)
144 }
145
146 #[inline]
147 fn end(&mut self) -> Result<(), DisplayError> {
148 <T as MockableTui>::end(self)
149 }
150}