/*!
* @defgroup FastaFastqIO FASTA/FASTQ I/O
*
* @brief Functions for FASTA and FASTQ I/O.
*
* These functions are very low-level. Consider using @link SequenceStream
* @endlink for an easier to use API.
*
* @fn FastaFastqIO#readRecord
*
* @headerfile <seqan/seq_io.h>
*
* @brief Read one FASTA or FASTQ record.
*
* @signature int readRecord(id, seq[, quals], stream, tag);
*
* @param[in,out] stream The @link StreamConcept @endlink to read from.
* @param[in] id @link SequenceConcept @endlink to read identifier into.
* @param[in] seq @link SequenceConcept @endlink to read sequence into.
* @param[in] quals @link SequenceConcept @endlink to read qualities into.
* @param[in] tag The format selector. Types: <tt>Fasta</tt>, <tt>Fastq</tt>
*
* @return int 0 on success, non-0 value on errors.
*
* @fn FastaFastqIO#read2
*
* @headerfile <seqan/seq_io.h>
*
* @brief Read a whole FASTA or FASTQ file into StringSet objects.
*
* @signature int read2(ids, seqs[, quals], reader, tag);
*
* @param[in,out] stream The @link StreamConcept @endlink to read from.
* @param[in] ids The @link StringSet @endlink to read the ids into.
* @param[in] seqs The @link StringSet @endlink to read the sequences into.
* @param[in] quals The @link StringSet @endlink to read the ASCII qualities
* into.
* @param[in] tags The format selector. Types: <tt>Fasta</tt>, <tt>Fastq</tt>
*
* @return int 0 on success, non-0 value on errors.
*
* @fn FastaFastqIO#writeRecord
*
* @headerfile <seqan/seq_io.h>
*
* @brief Write one FASTA or FASTQ record.
*
* @signature int writeRecord(stream, id, seq[, quals], tag[, options]);
*
* @param[in,out] stream The stream to write to. Type: @link StreamConcept
* @endlink
* @param[in] id ID/Meta information line to write out. Types: @link
* SequenceConcept @endlink
* @param[in] seq Sequence to write out. Type: @link SequenceConcept @endlink
* @param[in] quals ASCII quality characters to write out. Types: @link
* SequenceConcept @endlink
* @param[in] tag The format selector. Types: <tt>Fasta</tt>, <tt>Fastq</tt>
* @param[in] options if not supplied, defaults are chosen. Types: @link
* SequenceOutputOptions @endlink
*
* @return int 0 on success, non-0 value on errors.
*
* @fn FastaFastqIO#write2
*
* @headerfile <seqan/seq_io.h>
*
* @brief Write FASTA or FASTQ records.
*
* @signature int write2(stream, ids, seqs[, quals], tag[, options]);
*
* @param[in,out] stream The stream to write to. Types: @link StreamConcept
* @endlink
* @param[in] ids IDs/Metainformation strings to write out. Type: @link
* StringSet @endlink
* @param[in] seqs Sequences to write out. Type: @link StringSet @endlink
* @param[in] quals ASCII quality characters to write out. Type: @link StringSet
* @endlink
* @param[in] tag The format selector. Types: <tt>Fasta</tt>, <tt>Fastq</tt>
* @param[in] options if not supplied defaults are chosen. Type: @link
* SequenceOutputOptions @endlink
*
* @return int 0 on success, non-0 value on errors.
*/