13#if !defined(VITA_LOCUS_H)
27static_assert(
sizeof(
index_t) <=
sizeof(std::size_t),
28 "index_t size expected to be <= std::size_t");
29static_assert(
sizeof(
category_t) <=
sizeof(std::size_t),
30 "category_t size expected to be <= std::size_t");
37 static constexpr locus npos()
39 return {std::numeric_limits<index_t>::max(),
40 std::numeric_limits<category_t>::max()};
51 return l1.index == l2.index && l1.category == l2.category;
61 return l1.index != l2.index || l1.category != l2.category;
74 return l1.index < l2.index ||
75 (l1.index == l2.index && l1.category < l2.category);
86 return {l.index + i, l.category};
96 return s <<
'[' << l.index <<
',' << l.category <<
']';
The main namespace for the project.
std::size_t index_t
Index in the genome.
std::size_t category_t
A category provide operations which supplement or supersede those of the domain but which are restric...
std::ostream & operator<<(std::ostream &o, hash_t h)
Mainly useful for debugging / testing.