[Glacier][Zion] Add a fix sized string builder to allow non-alloc debug.

This commit is contained in:
Drew Galbraith 2023-11-09 09:07:09 -08:00
parent 601f29c324
commit 8d10f19312
5 changed files with 62 additions and 3 deletions

View file

@ -41,4 +41,29 @@ class VariableStringBuilder : public StringBuilder {
Vector<char> data_;
};
class FixedStringBuilder : public StringBuilder {
public:
FixedStringBuilder() = delete;
FixedStringBuilder(const FixedStringBuilder&) = delete;
FixedStringBuilder(FixedStringBuilder&&) = delete;
~FixedStringBuilder() = default;
FixedStringBuilder(char* buffer, uint64_t size)
: buffer_(buffer), capacity_(size), size_(0) {}
virtual uint64_t size() const override { return size_; }
virtual void PushBack(const StringView& str) override;
virtual void PushBack(const char str) override;
virtual String ToString() const override;
virtual operator StringView() const override;
private:
char* buffer_;
uint64_t capacity_;
uint64_t size_;
};
} // namespace glcr