  &#34;&#34;&#34;
        return len(self._by_start)

    def starting_at(self, offset):
        &#34;&#34;&#34;
        Returns an iterable of (start, end, data) tuples where start==offset
        &#34;&#34;&#34;
        return self._by_start.irange(
            minimum=(offset, 0, 0), maximum=(offset, sys.maxsize, sys.maxsize)
        )

    def ending_at(self, offset):
        &#34;&#34;&#34;
        Returns an iterable of (start, end, data) tuples where end==offset
        &#34;&#34;&#34;
        return