/// This will perform cut-through on the aggregate body. It will remove all outputs (and inputs) that are being
/// spent as inputs.
This will perform cut-through on the aggregate body. It will remove all outputs (and inputs) that are being
spent as inputs.
This will perform cut - through on the aggregate body . It will remove all outputs ( and inputs ) that are being spent as inputs .
pub fn do_cut_through(&mut self) {
        let double_inputs: Vec<TransactionInput> = self
            .inputs
            .iter()
            .filter(|input| self.outputs.iter().any(|o| o.is_equal_to(input)))
            .cloned()
            .collect();
        for input in double_inputs {
            trace!(
                target: LOG_TARGET,
                "removing the following utxo for cut-through: {}",
                input
            );
            self.outputs.retain(|x| !input.is_equal_to(x));
            self.inputs.retain(|x| *x != input);
        }
    }
pub fn do_cut_through ( & mut self ) { let double_inputs : Vec < TransactionInput > = self . inputs . iter ( ) . filter ( | input | self . outputs . iter ( ) . any ( | o | o . is_equal_to ( input ) ) ) . cloned ( ) . collect ( ) ; for input in double_inputs { trace ! ( target LOG_TARGET " " input ) ; self . outputs . retain ( | x | ! input . is_equal_to ( x ) ) ; self . inputs . retain ( | x | * x != input ) ; } }
This will perform cut-through on the aggregate body.
This will perform cut - through on the aggregate body .
&mut self