mirror of
https://github.com/AssetRipper/AssetRipper.git
synced 2025-12-11 20:15:29 +01:00
* Export MonoBehaviour byte arrays as scalars rather than sequences * Do not serialize yaml scalars, especially not for byte arrays * Eliminate unnecessary state for yaml scalars * Create a new type hierarchy for yaml scalars * Implement hexidecimal emission of floating point scalars * Implement hexidecimal emission of numeric lists * Resolves #1422 * Resolves #1409 * Resolves #1381 * Related to #927 * Related to #695
47 lines
984 B
C#
47 lines
984 B
C#
namespace AssetRipper.Yaml;
|
|
|
|
public abstract partial class YamlScalarNode : YamlNode
|
|
{
|
|
public sealed override bool IsMultiline => false;
|
|
public sealed override bool IsIndent => false;
|
|
public sealed override YamlNodeType NodeType => YamlNodeType.Scalar;
|
|
public virtual ScalarStyle Style => ScalarStyle.Plain;
|
|
public abstract string Value { get; }
|
|
|
|
private YamlScalarNode()
|
|
{
|
|
}
|
|
|
|
private protected abstract void EmitCore(Emitter emitter);
|
|
|
|
internal sealed override void Emit(Emitter emitter)
|
|
{
|
|
base.Emit(emitter);
|
|
|
|
switch (Style)
|
|
{
|
|
case ScalarStyle.Plain:
|
|
EmitCore(emitter);
|
|
break;
|
|
|
|
case ScalarStyle.SingleQuoted:
|
|
emitter.Write('\'');
|
|
EmitCore(emitter);
|
|
emitter.Write('\'');
|
|
break;
|
|
|
|
case ScalarStyle.DoubleQuoted:
|
|
emitter.Write('"');
|
|
EmitCore(emitter);
|
|
emitter.Write('"');
|
|
break;
|
|
|
|
default:
|
|
throw new Exception($"Unsupported scalar style {Style}");
|
|
}
|
|
}
|
|
|
|
|
|
public sealed override string ToString() => Value;
|
|
}
|