@@ -18,7 +18,8 @@ use crate::sys::{c, cvt, Align8};
18
18
use crate :: sys_common:: { AsInner , FromInner , IntoInner } ;
19
19
use crate :: thread;
20
20
21
- use super :: { api, to_u16s, IoResult } ;
21
+ use super :: api:: { self , WinError } ;
22
+ use super :: { to_u16s, IoResult } ;
22
23
use crate :: sys:: path:: maybe_verbatim;
23
24
24
25
pub struct File {
@@ -130,10 +131,11 @@ impl Iterator for ReadDir {
130
131
let mut wfd = mem:: zeroed ( ) ;
131
132
loop {
132
133
if c:: FindNextFileW ( self . handle . 0 , & mut wfd) == 0 {
133
- if api:: get_last_error ( ) . code == c:: ERROR_NO_MORE_FILES {
134
- return None ;
135
- } else {
136
- return Some ( Err ( Error :: last_os_error ( ) ) ) ;
134
+ match api:: get_last_error ( ) {
135
+ WinError :: NO_MORE_FILES => return None ,
136
+ WinError { code } => {
137
+ return Some ( Err ( Error :: from_raw_os_error ( code as i32 ) ) ) ;
138
+ }
137
139
}
138
140
}
139
141
if let Some ( e) = DirEntry :: new ( & self . root , & wfd) {
@@ -244,8 +246,6 @@ impl OpenOptions {
244
246
}
245
247
246
248
fn get_access_mode ( & self ) -> io:: Result < c:: DWORD > {
247
- const ERROR_INVALID_PARAMETER : i32 = 87 ;
248
-
249
249
match ( self . read , self . write , self . append , self . access_mode ) {
250
250
( .., Some ( mode) ) => Ok ( mode) ,
251
251
( true , false , false , None ) => Ok ( c:: GENERIC_READ ) ,
@@ -255,23 +255,23 @@ impl OpenOptions {
255
255
( true , _, true , None ) => {
256
256
Ok ( c:: GENERIC_READ | ( c:: FILE_GENERIC_WRITE & !c:: FILE_WRITE_DATA ) )
257
257
}
258
- ( false , false , false , None ) => Err ( Error :: from_raw_os_error ( ERROR_INVALID_PARAMETER ) ) ,
258
+ ( false , false , false , None ) => {
259
+ Err ( Error :: from_raw_os_error ( c:: ERROR_INVALID_PARAMETER as i32 ) )
260
+ }
259
261
}
260
262
}
261
263
262
264
fn get_creation_mode ( & self ) -> io:: Result < c:: DWORD > {
263
- const ERROR_INVALID_PARAMETER : i32 = 87 ;
264
-
265
265
match ( self . write , self . append ) {
266
266
( true , false ) => { }
267
267
( false , false ) => {
268
268
if self . truncate || self . create || self . create_new {
269
- return Err ( Error :: from_raw_os_error ( ERROR_INVALID_PARAMETER ) ) ;
269
+ return Err ( Error :: from_raw_os_error ( c :: ERROR_INVALID_PARAMETER as i32 ) ) ;
270
270
}
271
271
}
272
272
( _, true ) => {
273
273
if self . truncate && !self . create_new {
274
- return Err ( Error :: from_raw_os_error ( ERROR_INVALID_PARAMETER ) ) ;
274
+ return Err ( Error :: from_raw_os_error ( c :: ERROR_INVALID_PARAMETER as i32 ) ) ;
275
275
}
276
276
}
277
277
}
@@ -315,7 +315,7 @@ impl File {
315
315
// Manual truncation. See #115745.
316
316
if opts. truncate
317
317
&& creation == c:: OPEN_ALWAYS
318
- && unsafe { c :: GetLastError ( ) } == c :: ERROR_ALREADY_EXISTS
318
+ && api :: get_last_error ( ) == WinError :: ALREADY_EXISTS
319
319
{
320
320
unsafe {
321
321
// This originally used `FileAllocationInfo` instead of
@@ -845,7 +845,7 @@ fn open_link_no_reparse(parent: &File, name: &[u16], access: u32) -> io::Result<
845
845
// We make a special exception for `STATUS_DELETE_PENDING` because
846
846
// otherwise this will be mapped to `ERROR_ACCESS_DENIED` which is
847
847
// very unhelpful.
848
- Err ( io:: Error :: from_raw_os_error ( c:: ERROR_DELETE_PENDING as _ ) )
848
+ Err ( io:: Error :: from_raw_os_error ( c:: ERROR_DELETE_PENDING as i32 ) )
849
849
} else if status == c:: STATUS_INVALID_PARAMETER
850
850
&& ATTRIBUTES . load ( Ordering :: Relaxed ) == c:: OBJ_DONT_REPARSE
851
851
{
@@ -1097,7 +1097,7 @@ pub fn readdir(p: &Path) -> io::Result<ReadDir> {
1097
1097
//
1098
1098
// See issue #120040: https://github.com/rust-lang/rust/issues/120040.
1099
1099
let last_error = api:: get_last_error ( ) ;
1100
- if last_error. code == c :: ERROR_FILE_NOT_FOUND {
1100
+ if last_error == WinError :: FILE_NOT_FOUND {
1101
1101
return Ok ( ReadDir {
1102
1102
handle : FindNextFileHandle ( find_handle) ,
1103
1103
root : Arc :: new ( root) ,
0 commit comments