diff --git a/ethers-contract/ethers-contract-abigen/src/multi.rs b/ethers-contract/ethers-contract-abigen/src/multi.rs index f4bd7837..a0c4a21d 100644 --- a/ethers-contract/ethers-contract-abigen/src/multi.rs +++ b/ethers-contract/ethers-contract-abigen/src/multi.rs @@ -31,6 +31,12 @@ impl std::ops::Deref for MultiAbigen { } } +impl std::ops::DerefMut for MultiAbigen { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.abigens + } +} + impl From> for MultiAbigen { fn from(abigens: Vec) -> Self { Self { abigens } @@ -372,6 +378,16 @@ impl MultiBindings { self.expansion.contracts.is_empty() } + /// Specify whether or not to format the code using a locally installed copy + /// of `rustfmt`. + /// + /// Note that in case `rustfmt` does not exist or produces an error, the + /// unformatted code will be used. + pub fn rustfmt(mut self, rustfmt: bool) -> Self { + self.rustfmt = rustfmt; + self + } + fn into_inner(self, single_file: bool) -> MultiBindingsInner { self.expansion.into_bindings(single_file, self.rustfmt) }