Files
LukeFZ 20f90a0926 vendor in newer version of VersionedSerialization
this is done now to reduce the migration burden in the future when this is made into a nuget package (hopefully)
2026-03-13 17:34:07 +01:00

55 lines
1.0 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();
_sb.Append(_currentIndent);
_sb.Append('}');
_sb.AppendLine(suffix);
}
public void IncreaseIndentation()
{
_currentIndent += Indent;
}
public void DecreaseIndentation()
{
_currentIndent = _currentIndent[..^Indent.Length];
}
public void AppendLine()
{
_sb.AppendLine();
}
public void AppendLine(string text)
{
_sb.Append(_currentIndent);
_sb.AppendLine(text);
}
public override string ToString()
=> _sb.ToString();
}