diff --git a/src/bit_encoding/encode.rs b/src/bit_encoding/encode.rs index e7cff1f1..f4c812a0 100644 --- a/src/bit_encoding/encode.rs +++ b/src/bit_encoding/encode.rs @@ -157,13 +157,13 @@ pub fn encode_program( program: &node::Node, w: &mut BitWriter<&mut dyn io::Write>, ) -> io::Result { - let iter = EncodeNode::Node(program).post_order_iter::>(); - - let len = iter.clone().count(); + let nodes: Vec<_> = EncodeNode::Node(program) + .post_order_iter::>() + .collect(); let n_start = w.n_total_written(); - encode_natural(len, w)?; + encode_natural(nodes.len(), w)?; - for node in iter { + for node in nodes { encode_node(node, w)?; }