/ src / Ryujinx.Common / Extensions / BinaryWriterExtensions.cs
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  }