SeqAn3  3.0.3
The Modern C++ library for sequence analysis.
debug_stream_alphabet.hpp
Go to the documentation of this file.
1 // -----------------------------------------------------------------------------------------------------
2 // Copyright (c) 2006-2021, Knut Reinert & Freie Universität Berlin
3 // Copyright (c) 2016-2021, Knut Reinert & MPI für molekulare Genetik
4 // This file may be used, modified and/or redistributed under the terms of the 3-clause BSD-License
5 // shipped with this file and also available at: https://github.com/seqan/seqan3/blob/master/LICENSE.md
6 // -----------------------------------------------------------------------------------------------------
7 
13 #pragma once
14 
18 
19 namespace seqan3
20 {
30 template <typename char_t, alphabet alphabet_t>
33  requires (!output_stream_over<std::basic_ostream<char_t>, alphabet_t>)
35 {
36  return s << to_char(l);
37 }
38 
39 // forward declare seqan3::mask
40 class mask;
41 
48 template <typename char_t, seqan3::semialphabet alphabet_t>
51  requires std::same_as<std::remove_cvref_t<alphabet_t>, mask>
53 {
54  return s << (l == alphabet_t{} ? "UNMASKED" : "MASKED");
55 }
56 
58 
59 } // namespace seqan3
Core alphabet concept and free function/type trait wrappers.
A "pretty printer" for most SeqAn data structures and related types.
Definition: debug_stream_type.hpp:76
Implementation of a masked alphabet to be used for tuple composites.
Definition: mask.hpp:37
Provides seqan3::debug_stream and related types.
debug_stream_type< char_t > & operator<<(debug_stream_type< char_t > &stream, alignment_t &&alignment)
Stream operator for alignments, which are represented as tuples of aligned sequences.
Definition: debug_stream_alignment.hpp:101
constexpr auto to_char
Return the char representation of an alphabet object.
Definition: concept.hpp:384
Concept for output streams.
Stream concepts.
The main SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29