1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
use crate::codec::{Codec, ParseBioErr};
use std::fmt;
#[derive(Clone, Copy, Debug, PartialEq, Codec)]
#[width = 6]
#[repr(u8)]
pub enum Amino {
A = 0b000110,
C = 0b011011,
D = 0b010010,
E = 0b000010,
F = 0b011111,
G = 0b001010,
H = 0b010001,
I = 0b001100,
K = 0b000000,
L = 0b001101,
M = 0b101100,
N = 0b010000,
P = 0b000101,
Q = 0b000001,
R = 0b001000,
S = 0b011000,
T = 0b000100,
V = 0b001110,
W = 0b101011,
Y = 0b010011,
X = 0b000011,
}
impl From<Amino> for u8 {
fn from(amino: Amino) -> Self {
amino as u8
}
}
impl fmt::Display for Amino {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{:?}", self)
}
}