public void Write( MutagenWriter writer, T item, RecordType header, bool nullable) { if (item == null) { if (nullable) { return; } throw new ArgumentException("Non optional string was null."); } try { using (HeaderExport.Header(writer, header, ObjectType.Subrecord)) { Write(writer, item); } } catch (Exception ex) { throw SubrecordException.Enrich(ex, header); } }
public void WriteNullable( MutagenWriter writer, ITranslatedStringGetter?item, RecordType header, StringBinaryType binaryType, StringsSource source) { if (item == null) { return; } try { using (HeaderExport.Header(writer, header, ObjectType.Subrecord)) { if (writer.MetaData.StringsWriter == null) { writer.Write( item.String ?? string.Empty, binaryType: binaryType); } else { writer.Write(writer.MetaData.StringsWriter.Register(item, source)); } } } catch (Exception ex) { throw SubrecordException.Enrich(ex, header); } }
public static void Write(MutagenWriter writer, float?item, RecordType header, FloatIntegerType integerType, double multiplier) { try { if (item == null) { return; } using (HeaderExport.Subrecord(writer, header)) { Write(writer, item, integerType, multiplier); } } catch (Exception ex) { throw SubrecordException.Enrich(ex, header); } }
public void Write <T>( MutagenWriter writer, FormLink <T> item, RecordType header) where T : class, IMajorRecordCommonGetter { try { FormKeyBinaryTranslation.Instance.Write( writer, item.FormKey, header); } catch (Exception ex) { throw SubrecordException.Enrich(ex, header); } }
public void Write( MutagenWriter writer, E item, RecordType header, long length) { try { using (HeaderExport.Header(writer, header, ObjectType.Subrecord)) { WriteValue(writer, item, length); } } catch (Exception ex) { throw SubrecordException.Enrich(ex, header); } }
public void Write( MutagenWriter writer, T item, RecordType header, Action <MutagenWriter, T>?write = null) { write ??= this.Write; try { using (HeaderExport.Header(writer, header, ObjectType.Subrecord)) { write(writer, item); } } catch (Exception ex) { throw SubrecordException.Enrich(ex, header); } }
public void Write( MutagenWriter writer, FormKey item, RecordType header, bool nullable = false) { try { using (HeaderExport.Header(writer, header, ObjectType.Subrecord)) { this.Write( writer, item); } } catch (Exception ex) { throw SubrecordException.Enrich(ex, header); } }
public void Write( MutagenWriter writer, string item, RecordType header, StringBinaryType binaryType = StringBinaryType.NullTerminate) { try { using (HeaderExport.Header(writer, header, ObjectType.Subrecord)) { writer.Write( item, binaryType: binaryType); } } catch (Exception ex) { throw SubrecordException.Enrich(ex, header); } }
public void Write( MutagenWriter writer, ReadOnlyMemorySlice <byte>?item, RecordType header) { try { if (!item.HasValue) { return; } using (HeaderExport.Subrecord(writer, header)) { Write(writer, item.Value.Span); } } catch (Exception ex) { throw SubrecordException.Enrich(ex, header); } }
public void WriteAsMarker( MutagenWriter writer, bool item, RecordType header) { try { if (!item) { return; } using (HeaderExport.Header(writer, header, ObjectType.Subrecord)) { // Presence of marker signifies true } } catch (Exception ex) { throw SubrecordException.Enrich(ex, header); } }
public static void Write( this ByteArrayBinaryTranslation <MutagenFrame, MutagenWriter> transl, MutagenWriter writer, ReadOnlyMemorySlice <byte>?item, RecordType header) { try { if (!item.HasValue) { return; } using (HeaderExport.Subrecord(writer, header)) { transl.Write(writer, item.Value.Span); } } catch (Exception ex) { throw SubrecordException.Enrich(ex, header); } }
public void WriteNullable( MutagenWriter writer, E?item, RecordType header, long length) { try { if (!item.HasValue) { return; } using (HeaderExport.Header(writer, header, ObjectType.Subrecord)) { WriteValue(writer, item.Value, length); } } catch (Exception ex) { throw SubrecordException.Enrich(ex, header); } }
public void WriteNullable( MutagenWriter writer, T?item, RecordType header, Action <MutagenWriter, T>?write = null) { if (!item.HasValue) { return; } write ??= this.Write; try { using (HeaderExport.Header(writer, header, ObjectType.Subrecord)) { write(writer, item.Value); } } catch (Exception ex) { throw SubrecordException.Enrich(ex, header); } }
public void Write( MutagenWriter writer, ITranslatedStringGetter item, RecordType header, StringBinaryType binaryType, StringsSource source) { try { using (HeaderExport.Header(writer, header, ObjectType.Subrecord)) { Write( writer, item, binaryType, source); } } catch (Exception ex) { throw SubrecordException.Enrich(ex, header); } }
public void Write( MutagenWriter writer, ReadOnlyMemorySlice <byte>?item, RecordType header, RecordType overflowRecord) { try { if (!item.HasValue) { return; } if (item.Value.Length > ushort.MaxValue) { using (HeaderExport.Subrecord(writer, overflowRecord)) { writer.Write(item.Value.Length); } using (HeaderExport.Subrecord(writer, header)) { } Write(writer, item.Value.Span); } else { using (HeaderExport.Subrecord(writer, header)) { Write(writer, item.Value.Span); } } } catch (Exception ex) { throw SubrecordException.Enrich(ex, header); } }