difftreelog
feat(evm-coder) parse #[doc] for interface types
in: master
Previously, only documentation on items was parsed and preserved in generated code, now you can have documentation on interface itself
10 files changed
Cargo.lockdiffbeforeafterboth2172version = "0.1.1"2172version = "0.1.1"2173dependencies = [2173dependencies = [2174 "ethereum",2174 "ethereum",2175 "evm-coder-macros",2175 "evm-coder-procedural",2176 "evm-core",2176 "evm-core",2177 "hex",2177 "hex",2178 "hex-literal",2178 "hex-literal",2181]2181]218221822183[[package]]2183[[package]]2184name = "evm-coder-macros"2184name = "evm-coder-procedural"2185version = "0.2.0"2185version = "0.2.0"2186dependencies = [2186dependencies = [2187 "Inflector",2187 "Inflector",crates/evm-coder-macros/Cargo.tomldiffbeforeafterbothno changes
crates/evm-coder-macros/src/lib.rsdiffbeforeafterbothno changes
crates/evm-coder-macros/src/solidity_interface.rsdiffbeforeafterbothno changes
crates/evm-coder-macros/src/to_log.rsdiffbeforeafterbothno changes
crates/evm-coder/procedural/Cargo.tomldiffbeforeafterbothno changes
crates/evm-coder/procedural/src/lib.rsdiffbeforeafterbothno changes
crates/evm-coder/procedural/src/solidity_interface.rsdiffbeforeafterbothno changes
crates/evm-coder/procedural/src/to_log.rsdiffbeforeafterbothno changes
crates/evm-coder/src/solidity.rsdiffbeforeafterboth427 for doc in self.docs {427 for doc in self.docs {428 writeln!(writer, "\t///{}", doc)?;428 writeln!(writer, "\t///{}", doc)?;429 }429 }430 if !self.docs.is_empty() {431 writeln!(writer, "\t///")?;432 }433 writeln!(writer, "\t/// @dev EVM selector for this function is: 0x{:0>8x},", self.selector)?;430 writeln!(writer, "\t/// @dev EVM selector for this function is: 0x{:0>8x},", self.selector)?;434 writeln!(writer, "\t/// or in textual repr: {}", self.selector_str)?;431 writeln!(writer, "\t/// or in textual repr: {}", self.selector_str)?;435 write!(writer, "\tfunction {}(", self.name)?;432 write!(writer, "\tfunction {}(", self.name)?;491}488}492489493pub struct SolidityInterface<F: SolidityFunctions> {490pub struct SolidityInterface<F: SolidityFunctions> {491 pub docs: &'static [&'static str],494 pub selector: bytes4,492 pub selector: bytes4,495 pub name: &'static str,493 pub name: &'static str,496 pub is: &'static [&'static str],494 pub is: &'static [&'static str],505 tc: &TypeCollector,503 tc: &TypeCollector,506 ) -> fmt::Result {504 ) -> fmt::Result {507 const ZERO_BYTES: [u8; 4] = [0; 4];505 const ZERO_BYTES: [u8; 4] = [0; 4];506 for doc in self.docs {507 writeln!(out, "///{}", doc)?;508 }508 if self.selector != ZERO_BYTES {509 if self.selector != ZERO_BYTES {509 writeln!(510 writeln!(510 out,511 out,