@@ -126,15 +126,51 @@ impl<T: crate::Seek + ?Sized> std::io::Seek for ToStd<T> {
126
126
}
127
127
}
128
128
129
- fn to_std_error < T : core:: fmt:: Debug > ( err : T ) -> std:: io:: Error {
130
- let kind = std:: io:: ErrorKind :: Other ;
129
+ fn to_std_error < T : crate :: Error > ( err : T ) -> std:: io:: Error {
130
+ let kind = match err. kind ( ) {
131
+ crate :: ErrorKind :: NotFound => std:: io:: ErrorKind :: NotFound ,
132
+ crate :: ErrorKind :: PermissionDenied => std:: io:: ErrorKind :: PermissionDenied ,
133
+ crate :: ErrorKind :: ConnectionRefused => std:: io:: ErrorKind :: ConnectionRefused ,
134
+ crate :: ErrorKind :: ConnectionReset => std:: io:: ErrorKind :: ConnectionReset ,
135
+ crate :: ErrorKind :: ConnectionAborted => std:: io:: ErrorKind :: ConnectionAborted ,
136
+ crate :: ErrorKind :: NotConnected => std:: io:: ErrorKind :: NotConnected ,
137
+ crate :: ErrorKind :: AddrInUse => std:: io:: ErrorKind :: AddrInUse ,
138
+ crate :: ErrorKind :: AddrNotAvailable => std:: io:: ErrorKind :: AddrNotAvailable ,
139
+ crate :: ErrorKind :: BrokenPipe => std:: io:: ErrorKind :: BrokenPipe ,
140
+ crate :: ErrorKind :: AlreadyExists => std:: io:: ErrorKind :: AlreadyExists ,
141
+ crate :: ErrorKind :: InvalidInput => std:: io:: ErrorKind :: InvalidInput ,
142
+ crate :: ErrorKind :: InvalidData => std:: io:: ErrorKind :: InvalidData ,
143
+ crate :: ErrorKind :: TimedOut => std:: io:: ErrorKind :: TimedOut ,
144
+ crate :: ErrorKind :: Interrupted => std:: io:: ErrorKind :: Interrupted ,
145
+ crate :: ErrorKind :: Unsupported => std:: io:: ErrorKind :: Unsupported ,
146
+ crate :: ErrorKind :: OutOfMemory => std:: io:: ErrorKind :: OutOfMemory ,
147
+ _ => std:: io:: ErrorKind :: Other ,
148
+ } ;
131
149
std:: io:: Error :: new ( kind, format ! ( "{:?}" , err) )
132
150
}
133
151
134
152
#[ cfg_attr( docsrs, doc( cfg( feature = "std" ) ) ) ]
135
153
impl crate :: Error for std:: io:: Error {
136
154
fn kind ( & self ) -> crate :: ErrorKind {
137
- crate :: ErrorKind :: Other
155
+ match self . kind ( ) {
156
+ std:: io:: ErrorKind :: NotFound => crate :: ErrorKind :: NotFound ,
157
+ std:: io:: ErrorKind :: PermissionDenied => crate :: ErrorKind :: PermissionDenied ,
158
+ std:: io:: ErrorKind :: ConnectionRefused => crate :: ErrorKind :: ConnectionRefused ,
159
+ std:: io:: ErrorKind :: ConnectionReset => crate :: ErrorKind :: ConnectionReset ,
160
+ std:: io:: ErrorKind :: ConnectionAborted => crate :: ErrorKind :: ConnectionAborted ,
161
+ std:: io:: ErrorKind :: NotConnected => crate :: ErrorKind :: NotConnected ,
162
+ std:: io:: ErrorKind :: AddrInUse => crate :: ErrorKind :: AddrInUse ,
163
+ std:: io:: ErrorKind :: AddrNotAvailable => crate :: ErrorKind :: AddrNotAvailable ,
164
+ std:: io:: ErrorKind :: BrokenPipe => crate :: ErrorKind :: BrokenPipe ,
165
+ std:: io:: ErrorKind :: AlreadyExists => crate :: ErrorKind :: AlreadyExists ,
166
+ std:: io:: ErrorKind :: InvalidInput => crate :: ErrorKind :: InvalidInput ,
167
+ std:: io:: ErrorKind :: InvalidData => crate :: ErrorKind :: InvalidData ,
168
+ std:: io:: ErrorKind :: TimedOut => crate :: ErrorKind :: TimedOut ,
169
+ std:: io:: ErrorKind :: Interrupted => crate :: ErrorKind :: Interrupted ,
170
+ std:: io:: ErrorKind :: Unsupported => crate :: ErrorKind :: Unsupported ,
171
+ std:: io:: ErrorKind :: OutOfMemory => crate :: ErrorKind :: OutOfMemory ,
172
+ _ => crate :: ErrorKind :: Other ,
173
+ }
138
174
}
139
175
}
140
176
0 commit comments