public static void Deserialize(Message instance, UnsafeBufferWrapper wrapper) { instance.Header = wrapper.Read<Header>(); instance.Id = wrapper.ReadInt32(); instance.PartCount = wrapper.ReadInt32(); for (var i = 0; i < instance.PartCount; i++) { instance.Parts[i] = wrapper.Read<MessagePart>(); } }
public void Should_read_and_write_custom_structs() { var buffer = new byte[1024]; using (var wrapper = new UnsafeBufferWrapper(buffer)) { var value = new CustomStruct {Field1 = 42, Field2 = TimeSpan.FromHours(42), Field3 = DateTime.UtcNow}; wrapper.Write(ref value); Assert.AreEqual(wrapper.Position, sizeof(CustomStruct)); wrapper.ResetCursor(); var readValue = wrapper.Read<CustomStruct>(); Assert.AreEqual(value, readValue); } }
public void Should_read_and_write_structs() { var buffer = new byte[1024]; using (var wrapper = new UnsafeBufferWrapper(buffer)) { var value = Guid.NewGuid(); wrapper.Write(ref value); Assert.AreEqual(wrapper.Position, sizeof (Guid)); wrapper.ResetCursor(); var readValue = wrapper.Read<Guid>(); Assert.AreEqual(value, readValue); } }
public void Should_read_and_write_enums() { var buffer = new byte[1024]; using (var wrapper = new UnsafeBufferWrapper(buffer)) { var value = ConsoleColor.Cyan; wrapper.Write(ref value); Assert.AreEqual(wrapper.Position, sizeof (ConsoleColor)); wrapper.ResetCursor(); var readValue = wrapper.Read<ConsoleColor>(); Assert.AreEqual(value, readValue); } }