Files
GhostEngine/src/Tools/Ghost.NativeWrapperGen/Emit/CodeWriter.cs
2026-03-15 02:19:40 +09:00

45 lines
856 B
C#

using System.Text;
namespace Ghost.NativeWrapperGen.Emit;
internal sealed class CodeWriter
{
private readonly StringBuilder _builder = new();
private int _indent;
public void WriteLine(string line = "")
{
if (line.Length == 0)
{
_builder.AppendLine();
return;
}
_builder.Append(' ', _indent * 4);
_builder.AppendLine(line);
}
public IDisposable IndentScope()
{
_indent++;
return new Scope(this);
}
public override string ToString() => _builder.ToString();
private sealed class Scope : IDisposable
{
private readonly CodeWriter _writer;
public Scope(CodeWriter writer)
{
_writer = writer;
}
public void Dispose()
{
_writer._indent--;
}
}
}