From e4ea5476238e8669032b5ba5e0177048db2de4be Mon Sep 17 00:00:00 2001 From: Mark Thom Date: Mon, 7 Feb 2022 14:09:22 -0700 Subject: [PATCH] print bounded depth partial strings correctly --- src/heap_print.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/heap_print.rs b/src/heap_print.rs index 1dfba375..63e53d73 100644 --- a/src/heap_print.rs +++ b/src/heap_print.rs @@ -1188,15 +1188,19 @@ impl<'a, Outputter: HCValueOutputter> HCPrinter<'a, Outputter> { self.state_stack.push(TokenOrRedirect::HeadTailSeparator); } - for (char_count, c) in pstr.chars().rev().enumerate() { + let state_stack_len = self.state_stack.len(); + + for (char_count, c) in pstr.chars().enumerate() { if max_depth > 0 && char_count + 1 >= max_depth { break; } - self.state_stack.push(TokenOrRedirect::Char(c)); self.state_stack.push(TokenOrRedirect::Comma); + self.state_stack.push(TokenOrRedirect::Char(c)); } + self.state_stack[state_stack_len ..].reverse(); + if let Some(TokenOrRedirect::Comma) = self.state_stack.last() { self.state_stack.pop(); } -- 2.54.0