@@ -10,13 +10,14 @@ use crate::ffi::{OsStr, OsString};
1010use crate :: num:: NonZero ;
1111use crate :: os:: windows:: prelude:: * ;
1212use crate :: path:: { Path , PathBuf } ;
13+ use crate :: sys:: args:: Args ;
1314use crate :: sys:: pal:: os:: current_exe;
1415use crate :: sys:: pal:: { ensure_no_nuls, fill_utf16_buf} ;
1516use crate :: sys:: path:: get_long_path;
1617use crate :: sys:: { c, to_u16s} ;
1718use crate :: sys_common:: AsInner ;
1819use crate :: sys_common:: wstr:: WStrUnits ;
19- use crate :: { fmt , io, iter, ptr, vec } ;
20+ use crate :: { io, iter, ptr} ;
2021
2122pub fn args ( ) -> Args {
2223 // SAFETY: `GetCommandLineW` returns a pointer to a null terminated UTF-16
@@ -27,7 +28,7 @@ pub fn args() -> Args {
2728 current_exe ( ) . map ( PathBuf :: into_os_string) . unwrap_or_else ( |_| OsString :: new ( ) )
2829 } ) ;
2930
30- Args { parsed_args_list : parsed_args_list . into_iter ( ) }
31+ Args :: new ( parsed_args_list )
3132 }
3233}
3334
@@ -153,38 +154,6 @@ fn parse_lp_cmd_line<'a, F: Fn() -> OsString>(
153154 ret_val
154155}
155156
156- pub struct Args {
157- parsed_args_list : vec:: IntoIter < OsString > ,
158- }
159-
160- impl fmt:: Debug for Args {
161- fn fmt ( & self , f : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
162- self . parsed_args_list . as_slice ( ) . fmt ( f)
163- }
164- }
165-
166- impl Iterator for Args {
167- type Item = OsString ;
168- fn next ( & mut self ) -> Option < OsString > {
169- self . parsed_args_list . next ( )
170- }
171- fn size_hint ( & self ) -> ( usize , Option < usize > ) {
172- self . parsed_args_list . size_hint ( )
173- }
174- }
175-
176- impl DoubleEndedIterator for Args {
177- fn next_back ( & mut self ) -> Option < OsString > {
178- self . parsed_args_list . next_back ( )
179- }
180- }
181-
182- impl ExactSizeIterator for Args {
183- fn len ( & self ) -> usize {
184- self . parsed_args_list . len ( )
185- }
186- }
187-
188157#[ derive( Debug ) ]
189158pub ( crate ) enum Arg {
190159 /// Add quotes (if needed)
0 commit comments