BinaryWriterExtensions.cs
1 using System; 2 using System.IO; 3 using System.Runtime.InteropServices; 4 5 namespace Ryujinx.Common 6 { 7 public static class BinaryWriterExtensions 8 { 9 public static void WriteStruct<T>(this BinaryWriter writer, T value) where T : unmanaged 10 { 11 ReadOnlySpan<byte> data = MemoryMarshal.Cast<T, byte>(MemoryMarshal.CreateReadOnlySpan(ref value, 1)); 12 13 writer.Write(data); 14 } 15 16 public static void Write(this BinaryWriter writer, UInt128 value) 17 { 18 writer.Write((ulong)value); 19 writer.Write((ulong)(value >> 64)); 20 } 21 22 public static void Write(this BinaryWriter writer, MemoryStream stream) 23 { 24 stream.CopyTo(writer.BaseStream); 25 } 26 } 27 }