Files
Il2CppInspectorRedux/VersionedSerialization.Generator/Utils/CodeGenerator.cs
2024-08-13 04:27:23 +02:00

54 lines
1.2 KiB
C#

using System.Text;
namespace VersionedSerialization.Generator.Utils
{
public class CodeGenerator
{
private const string Indent = " ";
private readonly StringBuilder _sb = new();
private string _currentIndent = "";
public void EnterScope(string? header = null)
{
if (header != null)
{
AppendLine(header);
}
AppendLine("{");
IncreaseIndentation();
}
public void LeaveScope(string suffix = "")
{
DecreaseIndentation();
AppendLine($"}}{suffix}");
}
public void IncreaseIndentation()
{
_currentIndent += Indent;
}
public void DecreaseIndentation()
{
_currentIndent = _currentIndent.Substring(0, _currentIndent.Length - Indent.Length);
}
public void AppendLine()
{
_sb.AppendLine();
}
public void AppendLine(string text)
{
_sb.AppendLine(_currentIndent + text);
}
public override string ToString()
{
return _sb.ToString();
}
}
}