print bounded depth partial strings correctly

This commit is contained in:
Mark Thom
2022-02-07 14:09:22 -07:00
parent 33a6c81a07
commit e4ea547623

View File

@@ -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();
}