| Line | Branch | Exec | Source |
|---|---|---|---|
| 1 | // Copyright (c) 2021-2025 ChilliBits. All rights reserved. | ||
| 2 | |||
| 3 | #pragma once | ||
| 4 | |||
| 5 | #include <llvm/Support/raw_ostream.h> | ||
| 6 | |||
| 7 | namespace spice::compiler { | ||
| 8 | |||
| 9 | class RawStringOStream : public llvm::raw_pwrite_stream { | ||
| 10 | public: | ||
| 11 | // Public constructors | ||
| 12 | explicit RawStringOStream(std::string &output); | ||
| 13 | |||
| 14 | private: | ||
| 15 | // Private members | ||
| 16 | std::string &output; | ||
| 17 | |||
| 18 | // Private methods | ||
| 19 | void pwrite_impl(const char *Ptr, size_t Size, uint64_t Offset) override; | ||
| 20 | void write_impl(const char *Ptr, size_t Size) override; | ||
| 21 | [[nodiscard]] uint64_t current_pos() const override; | ||
| 22 | }; | ||
| 23 | |||
| 24 | } // namespace spice::compiler | ||
| 25 |