public void Write(IStructWriter writer, HintNameEntry item) { writer.Write(item.ExportNamePointerTableIndex); writer.WriteArray(Encoding.ASCII.GetBytes(item.Name)); var lastByteOffset = writer.Write <byte>(0); // String zero termination // A trailing zero-pad byte appears after the trailing null byte, if necessary, // to align the next entry on an even boundary. if ((lastByteOffset + 1) % 2 != 0) { writer.Write <byte>(0); } }
public void Write(IStructWriter writer, RelocationTable item) { foreach (var(header, entries) in item.Relocations) { writer.Write(header); writer.WriteArray(entries); } }
public static ulong WriteArray <T>(this IStructWriter writer, T[] arr) where T : struct { if (arr == null) { throw new ArgumentNullException(nameof(arr)); } var writtenOffset = writer.Offset; foreach (var item in arr) { writer.Write(item); } return(writtenOffset); }
public static ulong Write <T>(this IStructWriter writer, T item, ulong offset) where T : struct { writer.Offset = offset; writer.Write(item); return(offset); }
public void Write(T representation, IStructWriter writer) { writer.Write(representation); }