public static void WriteEnum <T>(SerializationCtx ctx, UnsafeWriter writer, T value) where T : #if !NET35 unmanaged, #endif Enum { writer.Write(Cast32BitEnum <T> .ToInt(value)); }
public static T ReadEnum <T>(SerializationCtx ctx, UnsafeReader reader) where T : #if !NET35 unmanaged, #endif Enum { Assertion.Assert(typeof(T).IsSubclassOf(typeof(Enum)), "{0}", typeof(T)); return(Cast32BitEnum <T> .FromInt(reader.ReadInt())); }
public void CastEnum32Test() { int updateOrdinal = (int)AddUpdateRemove.Update; int removeOrdinal = (int)AddUpdateRemove.Remove; Assert.AreEqual(AddUpdateRemove.Update, Cast32BitEnum <AddUpdateRemove> .FromInt(updateOrdinal)); Assert.AreEqual(AddUpdateRemove.Remove, Cast32BitEnum <AddUpdateRemove> .FromInt(removeOrdinal)); Assert.AreEqual(AddUpdateRemove.Update, Cast32BitEnum <AddUpdateRemove> .FromUInt((uint)updateOrdinal)); Assert.AreEqual(AddUpdateRemove.Remove, Cast32BitEnum <AddUpdateRemove> .FromUInt((uint)removeOrdinal)); }