Files
sbox-public/engine/Sandbox.System/Utility/BytePack/Packers/String.cs
s&box team 71f266059a Open source release
This commit imports the C# engine code and game files, excluding C++ source code.

[Source-Commit: ceb3d758046e50faa6258bc3b658a30c97743268]
2025-11-24 09:05:18 +00:00

34 lines
636 B
C#

namespace Sandbox;
internal partial class BytePack
{
class StringPacker : Packer
{
public override Type TargetType => typeof( string );
internal override Identifier Header => Identifier.String;
public override void Write( ref ByteStream bs, object obj )
{
// null strings are a thing
if ( obj is null )
{
bs.Write( (string)null );
return;
}
// this isn't even a string!
if ( obj is not string str )
{
throw new NotSupportedException( $"{obj} is not a string!" );
}
bs.Write( str );
}
public override object Read( ref ByteStream bs )
{
return bs.Read<string>();
}
}
}