BinaryWriterExtensions.cs 775 B

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