#pragma once #include #include namespace oop { class StringBuilder { public: StringBuilder() = default; explicit StringBuilder(std::string initial); StringBuilder(const StringBuilder& other); auto operator=(const StringBuilder& other) -> StringBuilder&; ~StringBuilder() = default; void append(const std::string& text); [[nodiscard]] auto str() const -> std::string; [[nodiscard]] auto size() const -> std::size_t; private: std::vector buffer_; }; } // namespace oop