feat: Adds TextDefinition serialization support. (#1217)

This commit is contained in:
Kamron Batman 2022-10-30 01:42:48 -07:00 committed by GitHub
parent 39e6f62ec9
commit d791feb583
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
29 changed files with 301 additions and 267 deletions

View file

@ -120,5 +120,16 @@ public interface IGenericReader
BitArray ReadBitArray();
TextDefinition ReadTextDefinition()
{
return ReadEncodedInt() switch
{
0 => new TextDefinition(),
1 => new TextDefinition(ReadEncodedInt()),
2 => new TextDefinition(ReadString()),
_ => null
};
}
long Seek(long offset, SeekOrigin origin);
}

View file

@ -164,5 +164,27 @@ public interface IGenericWriter
void Write(BitArray bitArray);
void Write(TextDefinition def)
{
if (def == null)
{
WriteEncodedInt(3);
}
else if (def.Number > 0)
{
WriteEncodedInt(1);
WriteEncodedInt(def.Number);
}
else if (def.String != null)
{
WriteEncodedInt(2);
Write(def.String);
}
else
{
WriteEncodedInt(0); // Empty
}
}
long Seek(long offset, SeekOrigin origin);
}