ctf_pwn/io/payload/builder/
print.rs

1use crate::io::payload::builder::PayloadBuilder;
2use crate::io::payload::payloads::*;
3use crate::io::*;
4use std::fmt::*;
5
6impl<T, A> PayloadBuilder<T, A>
7where
8    T: ReturnsValue,
9    T::ReturnType: AsRef<[u8]>,
10{
11    pub fn print_bytes(self) -> PayloadBuilder<Print<T, FmtBytes>, A> {
12        PayloadBuilder::from(Print::<T, FmtBytes>::from(self.payload))
13    }
14}
15
16impl<T, A> PayloadBuilder<T, A>
17where
18    T: ReturnsValue,
19    T::ReturnType: Display,
20{
21    pub fn print(self) -> PayloadBuilder<Print<T, FmtDefault>, A> {
22        PayloadBuilder::from(Print::<T, FmtDefault>::from(self.payload))
23    }
24}
25
26impl<T, A> PayloadBuilder<T, A>
27where
28    T: ReturnsValue,
29    T::ReturnType: Debug,
30{
31    pub fn print_debug(self) -> PayloadBuilder<Print<T, FmtDebug>, A> {
32        PayloadBuilder::from(Print::<T, FmtDebug>::from(self.payload))
33    }
34}
35
36impl<T, A> PayloadBuilder<T, A>
37where
38    T: ReturnsValue,
39    T::ReturnType: LowerHex,
40{
41    pub fn print_lower_hex(self) -> PayloadBuilder<Print<T, FmtLowerHex>, A> {
42        PayloadBuilder::from(Print::<T, FmtLowerHex>::from(self.payload))
43    }
44}
45
46impl<T, A> PayloadBuilder<T, A>
47where
48    T: ReturnsValue,
49    T::ReturnType: UpperHex,
50{
51    pub fn print_upper_hex(self) -> PayloadBuilder<Print<T, FmtUpperHex>, A> {
52        PayloadBuilder::from(Print::<T, FmtUpperHex>::from(self.payload))
53    }
54}
55
56impl<T, A> PayloadBuilder<T, A>
57where
58    T: ReturnsValue,
59    T::ReturnType: Octal,
60{
61    pub fn print_octal(self) -> PayloadBuilder<Print<T, FmtOctal>, A> {
62        PayloadBuilder::from(Print::<T, FmtOctal>::from(self.payload))
63    }
64}
65
66impl<T, A> PayloadBuilder<T, A>
67where
68    T: ReturnsValue,
69    T::ReturnType: Binary,
70{
71    pub fn print_binary(self) -> PayloadBuilder<Print<T, FmtBinary>, A> {
72        PayloadBuilder::from(Print::<T, FmtBinary>::from(self.payload))
73    }
74}
75
76impl<T, A> PayloadBuilder<T, A>
77where
78    T: ReturnsValue,
79    T::ReturnType: Pointer,
80{
81    pub fn print_pointer(self) -> PayloadBuilder<Print<T, FmtPointer>, A> {
82        PayloadBuilder::from(Print::<T, FmtPointer>::from(self.payload))
83    }
84}
85
86impl<T, A> PayloadBuilder<T, A>
87where
88    T: ReturnsValue,
89    T::ReturnType: LowerExp,
90{
91    pub fn print_lower_exp(self) -> PayloadBuilder<Print<T, FmtLowerExp>, A> {
92        PayloadBuilder::from(Print::<T, FmtLowerExp>::from(self.payload))
93    }
94}
95
96impl<T, A> PayloadBuilder<T, A>
97where
98    T: ReturnsValue,
99    T::ReturnType: UpperExp,
100{
101    pub fn print_upper_exp(self) -> PayloadBuilder<Print<T, FmtUpperExp>, A> {
102        PayloadBuilder::from(Print::<T, FmtUpperExp>::from(self.payload))
103    }
104}