17#ifndef TOOLBOX_UTIL_STREAM_HPP 
   18#define TOOLBOX_UTIL_STREAM_HPP 
   25inline namespace util {
 
   37template <std::
size_t MaxN>
 
  104        if (storage_ != 
nullptr) [[
likely]] {
 
  105            return MaxN - bytes_written_;
 
  113        assert(storage_ != 
nullptr);
 
  115        return static_cast<char*
>(
buf_base) + bytes_written_;
 
  119    char* do_prepare_space(std::size_t 
num_bytes)
 
  142    std::size_t bytes_written_{0
u};
 
 
  146template <std::
size_t MaxN>
 
  167    explicit operator bool()
 const {
 
 
  183        return BufSize - bytes_written_;
 
  188        return buf_ + bytes_written_;
 
  192    char* do_prepare_space(std::size_t 
num_bytes)
 
  221    static constexpr std::size_t BufSize
 
  225    std::size_t bytes_written_{0
u};
 
 
  230template <
class StreamT>
 
  263    const char* delim_{
nullptr};
 
 
  267template <
class StreamT, 
class DelimT>
 
  280        noexcept(std::is_nothrow_move_constructible_v<DelimT>)
 
 
 
  312static_assert(std::output_iterator<OStreamIterator<OStream<4096>>, 
const char&>, 
"");
 
  313static_assert(std::output_iterator<OStreamJoiner<OStream<4096>, 
int>, 
const char&>, 
"");