]>
git.proxmox.com Git - rustc.git/blob - compiler/rustc_driver/src/args.rs
6 pub fn arg_expand(arg
: String
) -> Result
<Vec
<String
>, Error
> {
7 if let Some(path
) = arg
.strip_prefix('@'
) {
8 let file
= match fs
::read_to_string(path
) {
10 Err(ref err
) if err
.kind() == io
::ErrorKind
::InvalidData
=> {
11 return Err(Error
::Utf8Error(Some(path
.to_string())));
13 Err(err
) => return Err(Error
::IOError(path
.to_string(), err
)),
15 Ok(file
.lines().map(ToString
::to_string
).collect())
23 Utf8Error(Option
<String
>),
24 IOError(String
, io
::Error
),
27 impl fmt
::Display
for Error
{
28 fn fmt(&self, fmt
: &mut fmt
::Formatter
<'_
>) -> fmt
::Result
{
30 Error
::Utf8Error(None
) => write
!(fmt
, "Utf8 error"),
31 Error
::Utf8Error(Some(path
)) => write
!(fmt
, "Utf8 error in {}", path
),
32 Error
::IOError(path
, err
) => write
!(fmt
, "IO Error: {}: {}", path
, err
),
37 impl error
::Error
for Error {}