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

Function format_range

src/repr/src/strconv.rs:1534–1579  ·  view source on GitHub ↗

Writes a [`Range`] to `buf`.

(
    buf: &mut F,
    r: &Range<V>,
    mut format_elem: impl FnMut(RangeElementWriter<F>, Option<&V>) -> Result<Nestable, E>,
)

Source from the content-addressed store, hash-verified

1532
1533/// Writes a [`Range`] to `buf`.
1534pub fn format_range<F, V, E>(
1535 buf: &mut F,
1536 r: &Range<V>,
1537 mut format_elem: impl FnMut(RangeElementWriter<F>, Option<&V>) -> Result<Nestable, E>,
1538) -> Result<Nestable, E>
1539where
1540 F: FormatBuffer,
1541{
1542 let range = match &r.inner {
1543 None => {
1544 buf.write_str("empty");
1545 return Ok(Nestable::MayNeedEscaping);
1546 }
1547 Some(i) => i,
1548 };
1549
1550 if range.lower.inclusive {
1551 buf.write_char('[');
1552 } else {
1553 buf.write_char('(');
1554 }
1555
1556 let start = buf.len();
1557 if let Nestable::MayNeedEscaping =
1558 format_elem(RangeElementWriter(buf), range.lower.bound.as_ref())?
1559 {
1560 escape_elem::<_, ListElementEscaper>(buf, start);
1561 }
1562
1563 buf.write_char(',');
1564
1565 let start = buf.len();
1566 if let Nestable::MayNeedEscaping =
1567 format_elem(RangeElementWriter(buf), range.upper.bound.as_ref())?
1568 {
1569 escape_elem::<_, ListElementEscaper>(buf, start);
1570 }
1571
1572 if range.upper.inclusive {
1573 buf.write_char(']');
1574 } else {
1575 buf.write_char(')');
1576 }
1577
1578 Ok(Nestable::MayNeedEscaping)
1579}
1580
1581/// A helper for `format_range` that formats a single record element.
1582#[derive(Debug)]

Callers 2

stringify_datumFunction · 0.85
encode_textMethod · 0.85

Calls 5

RangeElementWriterClass · 0.85
write_charMethod · 0.80
write_strMethod · 0.45
lenMethod · 0.45
as_refMethod · 0.45

Tested by

no test coverage detected