MCPcopy Create free account
hub / github.com/MaterializeInc/materialize / format_array_inner

Function format_array_inner

src/repr/src/strconv.rs:1624–1656  ·  view source on GitHub ↗
(
    buf: &mut F,
    dims: &[ArrayDimension],
    elems: &mut impl Iterator<Item = T>,
    format_elem: &mut impl FnMut(ListElementWriter<F>, T) -> Result<Nestable, E>,
)

Source from the content-addressed store, hash-verified

1622}
1623
1624pub 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>
1630where
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
1658pub fn format_legacy_vector<F, T, E>(
1659 buf: &mut F,

Callers 1

format_arrayFunction · 0.85

Calls 7

ListElementWriterClass · 0.85
write_charMethod · 0.80
unwrapMethod · 0.80
is_emptyMethod · 0.45
write_strMethod · 0.45
lenMethod · 0.45
nextMethod · 0.45

Tested by

no test coverage detected