20 #ifdef SEQAN3_HAS_BZIP2 21 #include <seqan3/contrib/stream/bz2_ostream.hpp> 23 #ifdef SEQAN3_HAS_ZLIB 24 #include <seqan3/contrib/stream/bgzf_ostream.hpp> 25 #include <seqan3/contrib/stream/gz_ostream.hpp> 48 if ((extension ==
".gz") || (extension ==
".bgzf") || (extension ==
".bam"))
50 #ifdef SEQAN3_HAS_ZLIB 51 if (extension !=
".bam")
52 filename.replace_extension(
"");
54 return {
new contrib::basic_bgzf_ostream<char_t>{primary_stream},
55 stream_deleter_default};
57 throw file_open_error{
"Trying to write a gzipped file, but no ZLIB available."};
60 else if (extension ==
".bz2")
62 #ifdef SEQAN3_HAS_BZIP2 63 filename.replace_extension(
"");
64 return {
new contrib::basic_bz2_ostream<char_t>{primary_stream}, stream_deleter_default};
66 throw file_open_error{
"Trying to write a bzipped file, but no libbz2 available."};
69 else if (extension ==
".zst")
71 throw file_open_error{
"Trying to write a zst'ed file, but SeqAn3 does not yet support this."};
74 return {&primary_stream, stream_deleter_noop};
Provides concepts for core language types and relations that don't have concepts in C++20 (yet)...
Definition: aligned_sequence_concept.hpp:35