public void WriteRecord(BinaryWriter writer)
        {
            writer.Write((int)RecordType);
            writer.Write(Type);
            writer.Write(HasVariableLabel ? 1 : 0);
            writer.Write(MissingValueType);
            writer.Write(PrintFormat?.GetInteger() ?? 0);
            writer.Write(WriteFormat?.GetInteger() ?? 0);

            writer.Write(_nameRaw);

            if (HasVariableLabel)
            {
                writer.Write(LabelLength);
                writer.Write(_labelRaw);
            }

            if (MissingValueType != 0)
            {
                for (int i = 0; i < MissingValues.Count && i < _missingValueCount; i++)
                {
                    writer.Write(MissingValues[i]);
                }
            }
        }