@@ -12,6 +12,7 @@ pub trait RawStream:
12
12
}
13
13
14
14
impl < T : RawStream + ?Sized > RawStream for & mut T { }
15
+ impl < T : RawStream + ?Sized > RawStream for Box < T > { }
15
16
16
17
impl RawStream for std:: io:: Stdout { }
17
18
@@ -21,7 +22,7 @@ impl RawStream for std::io::Stderr {}
21
22
22
23
impl RawStream for std:: io:: StderrLock < ' _ > { }
23
24
24
- impl RawStream for Box < dyn std:: io:: Write > { }
25
+ impl RawStream for dyn std:: io:: Write { }
25
26
26
27
impl RawStream for Vec < u8 > { }
27
28
@@ -50,6 +51,13 @@ impl<T: IsTerminal + ?Sized> IsTerminal for &mut T {
50
51
}
51
52
}
52
53
54
+ impl < T : IsTerminal + ?Sized > IsTerminal for Box < T > {
55
+ #[ inline]
56
+ fn is_terminal ( & self ) -> bool {
57
+ ( * * self ) . is_terminal ( )
58
+ }
59
+ }
60
+
53
61
impl IsTerminal for std:: io:: Stdout {
54
62
#[ inline]
55
63
fn is_terminal ( & self ) -> bool {
@@ -78,7 +86,7 @@ impl IsTerminal for std::io::StderrLock<'_> {
78
86
}
79
87
}
80
88
81
- impl IsTerminal for Box < dyn std:: io:: Write > {
89
+ impl IsTerminal for dyn std:: io:: Write {
82
90
#[ inline]
83
91
fn is_terminal ( & self ) -> bool {
84
92
false
@@ -154,7 +162,7 @@ impl AsLockedWrite for std::io::StderrLock<'static> {
154
162
}
155
163
}
156
164
157
- impl AsLockedWrite for Box < dyn std:: io:: Write > {
165
+ impl AsLockedWrite for dyn std:: io:: Write {
158
166
type Write < ' w > = & ' w mut Self ;
159
167
160
168
#[ inline]
@@ -196,6 +204,7 @@ mod private {
196
204
197
205
impl < T : Sealed + ?Sized > Sealed for & T { }
198
206
impl < T : Sealed + ?Sized > Sealed for & mut T { }
207
+ impl < T : Sealed + ?Sized > Sealed for Box < T > { }
199
208
200
209
impl Sealed for std:: io:: Stdout { }
201
210
@@ -205,7 +214,7 @@ mod private {
205
214
206
215
impl Sealed for std:: io:: StderrLock < ' _ > { }
207
216
208
- impl Sealed for Box < dyn std:: io:: Write > { }
217
+ impl Sealed for dyn std:: io:: Write { }
209
218
210
219
impl Sealed for Vec < u8 > { }
211
220
0 commit comments