include/bio/detail/writer_base.hpp
writer_base(std::filesystem::path const & filename, format_type const & fmt, options_t const & opt = options_t{}) :
      options{opt}, stream{filename, opt.stream_options}, format{fmt}
    {
        init();
    }
/*!\brief Construct from filename.
     * \param[in] filename  Path to the file you wish to open.
     * \param[in] fmt      The file format given as e.g. `fasta{}` [optional]
     * \param[in] opt       Writer options (exact type depends on specialisation). [optional]
     * \throws bio::file_open_error If the file could not be opened, e.g. non-existant, non-readable, unknown format.
     *
     * \details
     *
     * By default the format is determined from the extension of the provided filename. It may instead be specified
     * manually as specific type (e.g. `format_fasta{}`) or as a std::variant over all the allowed
     * formats.
     *
     *
     * ### Compression
     *
     * This constructor transparently applies a compression stream on top of the file stream in case
     * the extension indicates that you want compression.
     * See the section on compression and decompression for more information.
     */
\brief Construct from filename.
\param[in] filename  Path to the file you wish to open.
\param[in] fmt      The file format given as e.g. `fasta{}` [optional]
\param[in] opt       Writer options (exact type depends on specialisation). [optional]
\throws bio::file_open_error If the file could not be opened, e.g. non-existant, non-readable, unknown format.

\details

By default the format is determined from the extension of the provided filename. It may instead be specified
manually as specific type  or as a std::variant over all the allowed
formats.

Compression

This constructor transparently applies a compression stream on top of the file stream in case
the extension indicates that you want compression.
See the section on compression and decompression for more information.
\ brief Construct from filename . \ param [ in ] filename Path to the file you wish to open . \ param [ in ] fmt The file format given as e . g . ` fasta {} ` [ optional ] \ param [ in ] opt Writer options ( exact type depends on specialisation ) . [ optional ] \ throws bio :: file_open_error If the file could not be opened e . g . non - existant non - readable unknown format . \ details By default the format is determined from the extension of the provided filename . It may instead be specified manually as specific type or as a std :: variant over all the allowed formats . Compression This constructor transparently applies a compression stream on top of the file stream in case the extension indicates that you want compression . See the section on compression and decompression for more information .
writer_base(std::filesystem::path const & filename, format_type const & fmt, options_t const & opt = options_t{}) :
      options{opt}, stream{filename, opt.stream_options}, format{fmt}
    {
        init();
    }
writer_base ( std :: filesystem :: path const & filename , format_type const & fmt , options_t const & opt = options_t { } ) : options { opt } , stream { filename , opt . stream_options } , format { fmt } { init ( ) ; }
\brief Construct from filename.
\ brief Construct from filename .