SeqAn3  3.0.1
The Modern C++ library for sequence analysis.
mask.hpp
Go to the documentation of this file.
1 // -----------------------------------------------------------------------------------------------------
2 // Copyright (c) 2006-2020, Knut Reinert & Freie Universität Berlin
3 // Copyright (c) 2016-2020, 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 
15 #include <cassert>
17 
18 namespace seqan3
19 {
34 class mask : public alphabet_base<mask, 2, void>
35 {
36 private:
39 
41  friend base_t;
42 
43 public:
47  constexpr mask() = default;
48  constexpr mask(mask const &) = default;
49  constexpr mask(mask &&) = default;
50  constexpr mask & operator=(mask const &) = default;
51  constexpr mask & operator=(mask &&) = default;
52  ~mask() = default;
53 
59  static const mask UNMASKED;
61  static const mask MASKED;
62 };
64 
65 mask constexpr mask::UNMASKED{mask{}.assign_rank(0)};
66 mask constexpr mask::MASKED {mask{}.assign_rank(1)};
67 } // namespace seqan3
alphabet_base.hpp
Provides seqan3::alphabet_base.
seqan3::alphabet_base
A CRTP-base that makes defining a custom alphabet easier.
Definition: alphabet_base.hpp:51
seqan3::mask
Implementation of a masked alphabet to be used for tuple composites.
Definition: mask.hpp:34
seqan3::mask::UNMASKED
static const mask UNMASKED
Member for UNMASKED.
Definition: mask.hpp:60
seqan3
The main SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:36
seqan3::mask::mask
constexpr mask()=default
Defaulted.
seqan3::mask::~mask
~mask()=default
cassert
seqan3::alphabet_base::assign_rank
constexpr derived_type & assign_rank(rank_type const c) noexcept
Assign from a numeric value.
Definition: alphabet_base.hpp:165
seqan3::mask::MASKED
static const mask MASKED
Definition: mask.hpp:61
seqan3::mask::operator=
constexpr mask & operator=(mask const &)=default
Defaulted.