oxilean_codegen/evm_backend/
evmabifunction_traits.rs1use super::types::EvmAbiFunction;
12use std::fmt;
13
14impl std::fmt::Display for EvmAbiFunction {
15 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
16 let inputs: Vec<String> = self
17 .inputs
18 .iter()
19 .map(|(n, t)| format!("{} {}", t, n))
20 .collect();
21 let outputs: Vec<String> = self
22 .outputs
23 .iter()
24 .map(|(n, t)| format!("{} {}", t, n))
25 .collect();
26 let mut mods = Vec::new();
27 if self.is_pure {
28 mods.push("pure");
29 } else if self.is_view {
30 mods.push("view");
31 }
32 if self.is_payable {
33 mods.push("payable");
34 }
35 write!(
36 f,
37 "function {}({}) {} returns ({})",
38 self.name,
39 inputs.join(", "),
40 mods.join(" "),
41 outputs.join(", ")
42 )
43 }
44}