unsafe public void ReadWriteObjectTableIndex() { var srcData = ConfigureStruct(); // Write to stream var buffer = new UnsafeAppendBuffer(0, 16, Allocator.Persistent); var writer = new PropertiesBinaryWriter(&buffer); PropertyContainer.Visit(ref srcData, writer); var objectTable = writer.GetObjectTable(); // Read from stream var readStream = writer.Buffer.AsReader(); var reader = new PropertiesBinaryReader(&readStream, objectTable); var readData = new TestStruct(); PropertyContainer.Visit(ref readData, reader); // Check same TestStruct.AreEqual(srcData, readData); buffer.Dispose(); }
unsafe public void ReadWriteBoxed() { var srcData = ConfigureStruct(); // Write to stream var buffer = new UnsafeAppendBuffer(0, 16, Allocator.Persistent); var writer = new ManagedObjectBinaryWriter(&buffer); var boxedSrcData = (object)srcData; writer.WriteObject(boxedSrcData); var objectTable = writer.GetUnityObjects(); // Read from stream var readStream = buffer.AsReader(); var reader = new ManagedObjectBinaryReader(&readStream, objectTable); var boxedRead = reader.ReadObject(typeof(TestStruct)); // Check same TestStruct.AreEqual(srcData, (TestStruct)boxedRead); buffer.Dispose(); }
unsafe public void ReadWriteBoxed() { var srcData = ConfigureStruct(); // Write to stream var buffer = new UnsafeAppendBuffer(0, 16, Allocator.Persistent); var writer = new PropertiesBinaryWriter(&buffer); var boxedSrcData = (object)srcData; BoxedProperties.WriteBoxedType(boxedSrcData, writer); var objectTable = writer.GetObjectTable(); // Read from stream var readStream = writer.Buffer.AsReader(); var reader = new PropertiesBinaryReader(&readStream, objectTable); var boxedRead = BoxedProperties.ReadBoxedStruct(typeof(TestStruct), reader); // Check same TestStruct.AreEqual(srcData, (TestStruct)boxedRead); buffer.Dispose(); }