mirror of
https://github.com/AssetRipper/AssetRipper.git
synced 2025-12-11 20:15:29 +01:00
43 lines
710 B
C#
43 lines
710 B
C#
namespace AssetRipper.Yaml;
|
|
|
|
public sealed class YamlDocument
|
|
{
|
|
public YamlDocument() { }
|
|
|
|
public YamlSequenceNode CreateSequenceRoot()
|
|
{
|
|
YamlSequenceNode root = new();
|
|
Root = root;
|
|
return root;
|
|
}
|
|
|
|
public YamlMappingNode CreateMappingRoot()
|
|
{
|
|
YamlMappingNode root = new();
|
|
Root = root;
|
|
return root;
|
|
}
|
|
|
|
internal void Emit(Emitter emitter, bool isSeparator)
|
|
{
|
|
if (isSeparator)
|
|
{
|
|
emitter.Write("---").WriteWhitespace();
|
|
}
|
|
|
|
ThrowIfNullRoot();
|
|
Root.Emit(emitter);
|
|
}
|
|
|
|
[MemberNotNull(nameof(Root))]
|
|
private void ThrowIfNullRoot()
|
|
{
|
|
if (Root is null)
|
|
{
|
|
throw new NullReferenceException("Root cannot be null here");
|
|
}
|
|
}
|
|
|
|
public YamlNode? Root { get; private set; }
|
|
}
|