noodles_cram/container/compression_header/
preservation_map.rs1pub(crate) mod key;
4pub(crate) mod substitution_matrix;
5pub mod tag_sets;
6
7pub(crate) use {key::Key, substitution_matrix::SubstitutionMatrix, tag_sets::TagSets};
8
9#[derive(Clone, Debug, Eq, PartialEq)]
10pub(crate) struct PreservationMap {
11 pub(crate) records_have_names: bool,
12 pub(crate) alignment_starts_are_deltas: bool,
13 pub(crate) external_reference_sequence_is_required: bool,
14 pub(crate) substitution_matrix: SubstitutionMatrix,
15 pub(crate) tag_sets: TagSets,
16}
17
18impl PreservationMap {
19 pub fn new(
20 records_have_names: bool,
21 alignment_starts_are_deltas: bool,
22 external_reference_sequence_is_required: bool,
23 substitution_matrix: SubstitutionMatrix,
24 tag_sets: TagSets,
25 ) -> Self {
26 Self {
27 records_have_names,
28 alignment_starts_are_deltas,
29 external_reference_sequence_is_required,
30 substitution_matrix,
31 tag_sets,
32 }
33 }
34
35 pub fn records_have_names(&self) -> bool {
36 self.records_have_names
37 }
38
39 pub fn alignment_starts_are_deltas(&self) -> bool {
40 self.alignment_starts_are_deltas
41 }
42
43 pub fn external_reference_sequence_is_required(&self) -> bool {
44 self.external_reference_sequence_is_required
45 }
46
47 pub fn substitution_matrix(&self) -> &SubstitutionMatrix {
48 &self.substitution_matrix
49 }
50
51 pub fn tag_sets(&self) -> &TagSets {
52 &self.tag_sets
53 }
54}
55
56impl Default for PreservationMap {
57 fn default() -> Self {
58 Self {
59 records_have_names: true,
60 alignment_starts_are_deltas: true,
61 external_reference_sequence_is_required: true,
62 substitution_matrix: SubstitutionMatrix::default(),
63 tag_sets: TagSets::default(),
64 }
65 }
66}