pelite\wrap/view.rs
1use crate::*;
2use super::Wrap;
3
4/// Format agnostic PE view.
5pub type PeView<'a> = Wrap<pe32::PeView<'a>, pe64::PeView<'a>>;
6
7impl<'a> PeView<'a> {
8 pub fn from_bytes<T: AsRef<[u8]> + ?Sized>(image: &'a T) -> Result<PeView<'a>> {
9 match pe64::PeView::from_bytes(image) {
10 Ok(file) => Ok(Wrap::T64(file)),
11 Err(Error::PeMagic) => Ok(Wrap::T32(pe32::PeView::from_bytes(image)?)),
12 Err(err) => Err(err),
13 }
14 }
15}