From 543890c5c97d4b664e629c7252eb9a1db22c65ae Mon Sep 17 00:00:00 2001 From: Ali Mohammad Pur Date: Fri, 9 Dec 2022 20:15:35 +0330 Subject: [PATCH] AK: Add a fallible StringBuilder::create() factory function This is nice, and is also used by the Jakt runtime. --- AK/StringBuilder.cpp | 7 +++++++ AK/StringBuilder.h | 2 ++ 2 files changed, 9 insertions(+) diff --git a/AK/StringBuilder.cpp b/AK/StringBuilder.cpp index 932699e208d..ad161a2e1ea 100644 --- a/AK/StringBuilder.cpp +++ b/AK/StringBuilder.cpp @@ -36,6 +36,13 @@ inline ErrorOr StringBuilder::will_append(size_t size) return {}; } +ErrorOr StringBuilder::create(size_t initial_capacity) +{ + StringBuilder builder; + TRY(builder.m_buffer.try_ensure_capacity(initial_capacity)); + return builder; +} + StringBuilder::StringBuilder(size_t initial_capacity) { m_buffer.ensure_capacity(initial_capacity); diff --git a/AK/StringBuilder.h b/AK/StringBuilder.h index 78790d9c223..5e28ef03009 100644 --- a/AK/StringBuilder.h +++ b/AK/StringBuilder.h @@ -18,6 +18,8 @@ class StringBuilder { public: using OutputType = DeprecatedString; + static ErrorOr create(size_t initial_capacity = inline_capacity); + explicit StringBuilder(size_t initial_capacity = inline_capacity); ~StringBuilder() = default;