/// <summary> /// Writes this exported value to the given WebAssembly file writer. /// </summary> /// <param name="Writer">The WebAssembly file writer.</param> public void WriteTo(BinaryWasmWriter Writer) { Writer.WriteVarUInt32(MemoryIndex); Offset.WriteTo(Writer); Writer.WriteVarUInt32((uint)Data.Length); Writer.Writer.Write(Data); }
/// <summary> /// Writes this instruction's immediates (but not its opcode) /// to the given WebAssembly file writer. /// </summary> /// <param name="writer">The writer to write this instruction's immediates to.</param> public override void WriteImmediatesTo(BinaryWasmWriter writer) { writer.WriteVarUInt32((uint)TargetTable.Count); foreach (var entry in TargetTable) { writer.WriteVarUInt32(entry); } writer.WriteVarUInt32(DefaultTarget); }
/// <summary> /// Writes this WebAssembly section's payload to the given binary WebAssembly writer. /// </summary> /// <param name="writer">The writer to which the payload is written.</param> public override void WritePayloadTo(BinaryWasmWriter writer) { writer.WriteVarUInt32((uint)FunctionTypes.Count); foreach (var index in FunctionTypes) { writer.WriteVarUInt32(index); } writer.Writer.Write(ExtraPayload); }
/// <summary> /// Writes these resizable limits to the given WebAssembly file writer. /// </summary> /// <param name="writer">The WebAssembly file writer.</param> public void WriteTo(BinaryWasmWriter writer) { writer.WriteVarUInt1(HasMaximum); writer.WriteVarUInt32(Initial); if (HasMaximum) { writer.WriteVarUInt32(Maximum.Value); } }
/// <summary> /// Writes this element segment to the given WebAssembly file writer. /// </summary> /// <param name="Writer">The WebAssembly file writer.</param> public void WriteTo(BinaryWasmWriter Writer) { Writer.WriteVarUInt32(TableIndex); Offset.WriteTo(Writer); Writer.WriteVarUInt32((uint)Elements.Count); foreach (var item in Elements) { Writer.WriteVarUInt32(item); } }
/// <summary> /// Writes this function type to the given binary WebAssembly file. /// </summary> /// <param name="writer">The writer for a binary WebAssembly file.</param> public void WriteTo(BinaryWasmWriter writer) { writer.WriteWasmType(Form); writer.WriteVarUInt32((uint)ParameterTypes.Count); foreach (var item in ParameterTypes) { writer.WriteWasmValueType(item); } writer.WriteVarUInt32((uint)ReturnTypes.Count); foreach (var item in ReturnTypes) { writer.WriteWasmValueType(item); } }
/// <inheritdoc/> public override void WritePayloadTo(BinaryWasmWriter Writer) { Writer.WriteVarUInt32((uint)Memories.Count); foreach (var limits in Memories) { limits.WriteTo(Writer); } Writer.Writer.Write(ExtraPayload); }
/// <inheritdoc/> public override void WritePayloadTo(BinaryWasmWriter writer) { writer.WriteVarUInt32((uint)Exports.Count); foreach (var export in Exports) { export.WriteTo(writer); } writer.Writer.Write(ExtraPayload); }
/// <inheritdoc/> public override void WritePayloadTo(BinaryWasmWriter writer) { writer.WriteVarUInt32((uint)Segments.Count); foreach (var segment in Segments) { segment.WriteTo(writer); } writer.Writer.Write(ExtraPayload); }
/// <summary> /// Writes this WebAssembly section's payload to the given binary WebAssembly writer. /// </summary> /// <param name="writer">The writer to which the payload is written.</param> public override void WritePayloadTo(BinaryWasmWriter writer) { writer.WriteVarUInt32((uint)GlobalVariables.Count); foreach (var index in GlobalVariables) { index.WriteTo(writer); } writer.Writer.Write(ExtraPayload); }
/// <inheritdoc/> public override void WritePayloadTo(BinaryWasmWriter Writer) { Writer.WriteVarUInt32((uint)Bodies.Count); foreach (var body in Bodies) { body.WriteTo(Writer); } Writer.Writer.Write(ExtraPayload); }
/// <inheritdoc/> public override void WritePayloadTo(BinaryWasmWriter Writer) { Writer.WriteVarUInt32((uint)Segments.Count); foreach (var export in Segments) { export.WriteTo(Writer); } Writer.Writer.Write(ExtraPayload); }
/// <inheritdoc/> public override void WritePayloadTo(BinaryWasmWriter Writer) { Writer.WriteVarUInt32((uint)FunctionTypes.Count); foreach (var type in FunctionTypes) { type.WriteTo(Writer); } Writer.Writer.Write(ExtraPayload); }
/// <inheritdoc/> public override void WritePayloadTo(BinaryWasmWriter writer) { writer.WriteVarUInt32((uint)Tables.Count); foreach (var type in Tables) { type.WriteTo(writer); } writer.Writer.Write(ExtraPayload); }
private void WriteContentsTo(BinaryWasmWriter Writer) { // Write the number of local entries to the file. Writer.WriteVarUInt32((uint)Locals.Count); // Write the local variables to the file. foreach (var local in Locals) { local.WriteTo(Writer); } // Write the body to the file. Operators.Block.Create(WasmType.Empty, BodyInstructions).WriteContentsTo(Writer); if (HasExtraPayload) { // If we have at least one byte of additional payload, // then we should write it to the stream now. Writer.Writer.Write(ExtraPayload); } }
/// <inheritdoc/> protected override void WriteContentsTo(BinaryWasmWriter Writer) { Writer.WriteVarUInt32(TypeIndex); }
/// <summary> /// Writes this exported value to the given WebAssembly file writer. /// </summary> /// <param name="writer">The WebAssembly file writer.</param> public void WriteTo(BinaryWasmWriter writer) { writer.WriteString(Name); writer.Writer.Write((byte)Kind); writer.WriteVarUInt32(Index); }
/// <summary> /// Writes this instruction's immediates (but not its opcode) /// to the given WebAssembly file writer. /// </summary> /// <param name="Writer">The writer to write this instruction's immediates to.</param> public override void WriteImmediatesTo(BinaryWasmWriter Writer) { Writer.WriteVarUInt32(TypeIndex); Writer.WriteVarUInt32(Reserved); }
/// <inheritdoc/> public override void WritePayloadTo(BinaryWasmWriter writer) { writer.WriteVarUInt32(StartFunctionIndex); writer.Writer.Write(ExtraPayload); }
/// <summary> /// Writes this instruction's immediates (but not its opcode) /// to the given WebAssembly file writer. /// </summary> /// <param name="writer">The writer to write this instruction's immediates to.</param> public override void WriteImmediatesTo(BinaryWasmWriter writer) { writer.WriteVarUInt32(Log2Alignment); writer.WriteVarUInt32(Offset); }
/// <summary> /// Writes this local entry to the given WebAssembly file writer. /// </summary> /// <param name="Writer">The WebAssembly file writer.</param> public void WriteTo(BinaryWasmWriter Writer) { Writer.WriteVarUInt32(LocalCount); Writer.WriteWasmValueType(LocalType); }
/// <summary> /// Writes this instruction's immediates (but not its opcode) /// to the given WebAssembly file writer. /// </summary> /// <param name="writer">The writer to write this instruction's immediates to.</param> public override void WriteImmediatesTo(BinaryWasmWriter writer) { writer.WriteVarUInt32(Immediate); }