diff options
author | Omer BenAmram <omerbenamram@gmail.com> | 2020-01-06 23:12:42 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-06 23:12:42 +0300 |
commit | 6f8256e8f4fbc1f11951577712d1595ffaabad44 (patch) | |
tree | 36e4f85209ca27b447f188a660e98731d1cb96b8 /src/attribute/x30.rs | |
parent | 8fc54c4abcdad8ccca1459dd9557996512d49557 (diff) | |
parent | 678d4df9663d4bfdd119e0cbf35f556b4414dec3 (diff) |
Merge pull request #35 from omerbenamram/housekeeping
Housekeeping
Diffstat (limited to 'src/attribute/x30.rs')
-rw-r--r-- | src/attribute/x30.rs | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/src/attribute/x30.rs b/src/attribute/x30.rs index 8a0d0f4..22aa8ec 100644 --- a/src/attribute/x30.rs +++ b/src/attribute/x30.rs @@ -1,8 +1,7 @@ use crate::attribute::FileAttributeFlags; -use crate::err::{self, Result}; +use crate::err::{Error, Result}; use crate::ReadSeek; use log::trace; -use snafu::OptionExt; use byteorder::{LittleEndian, ReadBytesExt}; use encoding::all::UTF_16LE; @@ -12,7 +11,6 @@ use chrono::{DateTime, Utc}; use num_traits::FromPrimitive; use serde::Serialize; -use snafu::ResultExt; use winstructs::ntfs::mft_reference::MftReference; use winstructs::timestamp::WinTimestamp; @@ -77,18 +75,19 @@ impl FileNameAttr { /// ``` pub fn from_stream<S: ReadSeek>(stream: &mut S) -> Result<FileNameAttr> { trace!("Offset {}: FilenameAttr", stream.tell()?); - let parent = MftReference::from_reader(stream).context(err::FailedToReadMftReference)?; + let parent = + MftReference::from_reader(stream).map_err(Error::failed_to_read_mft_reference)?; let created = WinTimestamp::from_reader(stream) - .context(err::FailedToReadWindowsTime)? + .map_err(Error::failed_to_read_windows_time)? .to_datetime(); let modified = WinTimestamp::from_reader(stream) - .context(err::FailedToReadWindowsTime)? + .map_err(Error::failed_to_read_windows_time)? .to_datetime(); let mft_modified = WinTimestamp::from_reader(stream) - .context(err::FailedToReadWindowsTime)? + .map_err(Error::failed_to_read_windows_time)? .to_datetime(); let accessed = WinTimestamp::from_reader(stream) - .context(err::FailedToReadWindowsTime)? + .map_err(Error::failed_to_read_windows_time)? .to_datetime(); let logical_size = stream.read_u64::<LittleEndian>()?; @@ -98,14 +97,14 @@ impl FileNameAttr { let name_length = stream.read_u8()?; let namespace = stream.read_u8()?; let namespace = - FileNamespace::from_u8(namespace).context(err::UnknownNamespace { namespace })?; + FileNamespace::from_u8(namespace).ok_or(Error::UnknownNamespace { namespace })?; let mut name_buffer = vec![0; (name_length as usize * 2) as usize]; stream.read_exact(&mut name_buffer)?; let name = match UTF_16LE.decode(&name_buffer, DecoderTrap::Ignore) { Ok(s) => s, - Err(_e) => return err::InvalidFilename {}.fail(), + Err(_e) => return Err(Error::InvalidFilename {}), }; Ok(FileNameAttr { |