diff options
author | David Tolnay <dtolnay@chromium.org> | 2019-03-01 18:07:56 -0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2019-03-02 17:41:31 -0800 |
commit | c69f97542a6071f78d48a743ee94119a93bc9471 (patch) | |
tree | 69ee27de806bf460c108219d9d2c64bd633cf35d /kernel_loader | |
parent | 5e1b46cbd8cb031a12c0fb20e94670f1007fd789 (diff) | |
download | crosvm-c69f97542a6071f78d48a743ee94119a93bc9471.tar crosvm-c69f97542a6071f78d48a743ee94119a93bc9471.tar.gz crosvm-c69f97542a6071f78d48a743ee94119a93bc9471.tar.bz2 crosvm-c69f97542a6071f78d48a743ee94119a93bc9471.tar.lz crosvm-c69f97542a6071f78d48a743ee94119a93bc9471.tar.xz crosvm-c69f97542a6071f78d48a743ee94119a93bc9471.tar.zst crosvm-c69f97542a6071f78d48a743ee94119a93bc9471.zip |
error: Consistently use Display instead of error description()
The description method is deprecated and its signature forces less helpful error messages than what Display can provide. BUG=none TEST=cargo check --all-features TEST=cargo check --target aarch64-unknown-linux-gnu Change-Id: I27fc99d59d0ef457c5273dc53e4c563ef439c2c0 Reviewed-on: https://chromium-review.googlesource.com/1497735 Commit-Ready: David Tolnay <dtolnay@chromium.org> Tested-by: David Tolnay <dtolnay@chromium.org> Tested-by: kokoro <noreply+kokoro@google.com> Reviewed-by: Dylan Reid <dgreid@chromium.org>
Diffstat (limited to 'kernel_loader')
-rw-r--r-- | kernel_loader/src/lib.rs | 43 |
1 files changed, 20 insertions, 23 deletions
diff --git a/kernel_loader/src/lib.rs b/kernel_loader/src/lib.rs index ecc5a34..15693a6 100644 --- a/kernel_loader/src/lib.rs +++ b/kernel_loader/src/lib.rs @@ -4,7 +4,6 @@ extern crate sys_util; -use std::error::{self, Error as KernelLoaderError}; use std::ffi::CStr; use std::fmt::{self, Display}; use std::io::{Read, Seek, SeekFrom}; @@ -37,31 +36,29 @@ pub enum Error { } pub type Result<T> = std::result::Result<T, Error>; -impl error::Error for Error { - fn description(&self) -> &str { - match self { - Error::BigEndianElfOnLittle => { - "Trying to load big-endian binary on little-endian machine" - } - Error::CommandLineCopy => "Failed writing command line to guest memory", - Error::CommandLineOverflow => "Command line overflowed guest memory", - Error::InvalidElfMagicNumber => "Invalid Elf magic number", - Error::InvalidProgramHeaderSize => "Invalid program header size", - Error::InvalidProgramHeaderOffset => "Invalid program header offset", - Error::InvalidProgramHeaderAddress => "Invalid Program Header Address", - Error::ReadElfHeader => "Unable to read elf header", - Error::ReadKernelImage => "Unable to read kernel image", - Error::ReadProgramHeader => "Unable to read program header", - Error::SeekKernelStart => "Unable to seek to kernel start", - Error::SeekElfStart => "Unable to seek to elf start", - Error::SeekProgramHeader => "Unable to seek to program header", - } - } -} +impl std::error::Error for Error {} impl Display for Error { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - write!(f, "Kernel Loader Error: {}", Error::description(self)) + use self::Error::*; + + let description = match self { + BigEndianElfOnLittle => "trying to load big-endian binary on little-endian machine", + CommandLineCopy => "failed writing command line to guest memory", + CommandLineOverflow => "command line overflowed guest memory", + InvalidElfMagicNumber => "invalid Elf magic number", + InvalidProgramHeaderSize => "invalid program header size", + InvalidProgramHeaderOffset => "invalid program header offset", + InvalidProgramHeaderAddress => "invalid Program Header Address", + ReadElfHeader => "unable to read elf header", + ReadKernelImage => "unable to read kernel image", + ReadProgramHeader => "unable to read program header", + SeekKernelStart => "unable to seek to kernel start", + SeekElfStart => "unable to seek to elf start", + SeekProgramHeader => "unable to seek to program header", + }; + + write!(f, "kernel loader: {}", description) } } |