mirror of
https://github.com/Facepunch/sbox-public.git
synced 2026-01-25 14:49:28 -05:00
This commit imports the C# engine code and game files, excluding C++ source code. [Source-Commit: ceb3d758046e50faa6258bc3b658a30c97743268]
34 lines
636 B
C#
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>();
|
|
}
|
|
}
|
|
}
|