JD2022-TU1/main/tools/lib/AbstractPlugin/BlobExtensions.cs

55 lines
1.3 KiB
C#

namespace Plugin
{
/// <summary>
/// Adds helper methods to blobs.
/// </summary>
public static class BlobExtensions
{
public static void extractEnum<TEnum>(this IBlob blob, ref TEnum @enum)
{
int enumValue = (int) (object) @enum;
blob.extract(ref enumValue);
@enum = (TEnum) (object) enumValue;
}
public static void pushEnum<TEnum>(this IBlob blob, TEnum @enum)
{
blob.push((int)(object)@enum);
}
public static uint extractUInt(this IBlob blob)
{
uint value = 0;
blob.extract(ref value);
return value;
}
public static string extractString(this IBlob blob)
{
string value = "";
blob.extract(ref value);
return value;
}
public static bool extractBool(this IBlob blob)
{
bool value = false;
blob.extract(ref value);
return value;
}
public static int extractInt(this IBlob blob)
{
int value = 0;
blob.extract(ref value);
return value;
}
public static float extractFloat(this IBlob blob)
{
float value = 0;
blob.extract(ref value);
return value;
}
}
}