ctf_pwn/io/payload/builder/
print.rs1use 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}