(
buf: &mut F,
dims: &[ArrayDimension],
elems: &mut impl Iterator<Item = T>,
format_elem: &mut impl FnMut(ListElementWriter<F>, T) -> Result<Nestable, E>,
)
| 1622 | } |
| 1623 | |
| 1624 | pub fn format_array_inner<F, T, E>( |
| 1625 | buf: &mut F, |
| 1626 | dims: &[ArrayDimension], |
| 1627 | elems: &mut impl Iterator<Item = T>, |
| 1628 | format_elem: &mut impl FnMut(ListElementWriter<F>, T) -> Result<Nestable, E>, |
| 1629 | ) -> Result<(), E> |
| 1630 | where |
| 1631 | F: FormatBuffer, |
| 1632 | { |
| 1633 | if dims.is_empty() { |
| 1634 | buf.write_str("{}"); |
| 1635 | return Ok(()); |
| 1636 | } |
| 1637 | |
| 1638 | buf.write_char('{'); |
| 1639 | for j in 0..dims[0].length { |
| 1640 | if j > 0 { |
| 1641 | buf.write_char(','); |
| 1642 | } |
| 1643 | if dims.len() == 1 { |
| 1644 | let start = buf.len(); |
| 1645 | let elem = elems.next().unwrap(); |
| 1646 | if let Nestable::MayNeedEscaping = format_elem(ListElementWriter(buf), elem)? { |
| 1647 | escape_elem::<_, ListElementEscaper>(buf, start); |
| 1648 | } |
| 1649 | } else { |
| 1650 | format_array_inner(buf, &dims[1..], elems, format_elem)?; |
| 1651 | } |
| 1652 | } |
| 1653 | buf.write_char('}'); |
| 1654 | |
| 1655 | Ok(()) |
| 1656 | } |
| 1657 | |
| 1658 | pub fn format_legacy_vector<F, T, E>( |
| 1659 | buf: &mut F, |
no test coverage detected