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 |
|
|
|