1use std::ops::Range;
2use crate::*;
3use super::Wrap;
4
5impl<'a, Pe32: pe32::Pe<'a>, Pe64: pe64::Pe<'a>> Wrap<pe32::headers::Headers<Pe32>, pe64::headers::Headers<Pe64>> {
7 #[inline]
9 pub fn pe(&self) -> Wrap<Pe32, Pe64> {
10 match self {
11 Wrap::T32(headers) => Wrap::T32(headers.pe()),
12 Wrap::T64(headers) => Wrap::T64(headers.pe()),
13 }
14 }
15 #[inline]
17 pub fn image(&self) -> &'a [u8] {
18 match self {
19 Wrap::T32(headers) => headers.image(),
20 Wrap::T64(headers) => headers.image(),
21 }
22 }
23 #[inline]
25 pub fn check_sum(&self) -> u32 {
26 match self {
27 Wrap::T32(headers) => headers.check_sum(),
28 Wrap::T64(headers) => headers.check_sum(),
29 }
30 }
31 #[inline]
33 pub fn code_range(&self) -> Range<u32> {
34 match self {
35 Wrap::T32(headers) => headers.code_range(),
36 Wrap::T64(headers) => headers.code_range(),
37 }
38 }
39 #[inline]
41 pub fn image_range(&self) -> Range<u32> {
42 match self {
43 Wrap::T32(headers) => headers.image_range(),
44 Wrap::T64(headers) => headers.image_range(),
45 }
46 }
47}