Skip to content

Commit 48bdb05

Browse files
committed
const update
1 parent 55a8cda commit 48bdb05

File tree

1 file changed

+14
-11
lines changed

1 file changed

+14
-11
lines changed

src/lib/mod.rs

+14-11
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,16 @@ pub mod bitenc;
33
pub mod samples;
44

55
use crate::bitenc::BitEnc;
6-
use std::sync::LazyLock;
76

87
pub const DNA_BASES: [u8; 5] = *b"ACGTN";
98
pub const IUPAC_BASES: [u8; 15] = *b"ACGTMRWSYKVHDBN";
109

11-
pub static BASE_A: LazyLock<usize> = LazyLock::new(|| 1);
12-
pub static BASE_C: LazyLock<usize> = LazyLock::new(|| 2);
13-
pub static BASE_G: LazyLock<usize> = LazyLock::new(|| 4);
14-
pub static BASE_T: LazyLock<usize> = LazyLock::new(|| 8);
15-
pub static BASE_N: LazyLock<usize> = LazyLock::new(|| 15);
16-
pub static DNA_MASKS: LazyLock<[u8; 256]> = LazyLock::new(|| {
10+
pub const BASE_A: usize = 1;
11+
pub const BASE_C: usize = 2;
12+
pub const BASE_G: usize = 4;
13+
pub const BASE_T: usize = 8;
14+
pub const BASE_B: usize = 15;
15+
pub const DNA_MASKS: [u8; 256] = {
1716
let mut masks = [0; 256];
1817
let (a, c, g, t) = (1, 2, 4, 8);
1918
masks['A' as usize] = a;
@@ -23,8 +22,8 @@ pub static DNA_MASKS: LazyLock<[u8; 256]> = LazyLock::new(|| {
2322
masks['U' as usize] = t;
2423
masks['N' as usize] = a | c | g | t;
2524
masks
26-
});
27-
pub static IUPAC_MASKS: LazyLock<[u8; 256]> = LazyLock::new(|| {
25+
};
26+
pub const IUPAC_MASKS: [u8; 256] = {
2827
let mut masks = [0; 256];
2928
let (a, c, g, t) = (1, 2, 4, 8);
3029
masks['A' as usize] = a;
@@ -44,7 +43,7 @@ pub static IUPAC_MASKS: LazyLock<[u8; 256]> = LazyLock::new(|| {
4443
masks['B' as usize] = c | g | t;
4544
masks['N' as usize] = a | c | g | t;
4645
masks
47-
});
46+
};
4847

4948
#[must_use]
5049
pub fn encode(bases: &[u8]) -> BitEnc {
@@ -54,7 +53,11 @@ pub fn encode(bases: &[u8]) -> BitEnc {
5453
IUPAC_MASKS[b'N' as usize]
5554
} else {
5655
let value = base.to_ascii_uppercase() as usize;
57-
if value < 256 { IUPAC_MASKS[value] } else { 0 }
56+
if value < 256 {
57+
IUPAC_MASKS[value]
58+
} else {
59+
0
60+
}
5861
};
5962
vec.push(bit);
6063
}

0 commit comments

Comments
 (0)