pub trait Code {
// Required methods
fn single_letter(&self) -> char;
fn three_letters(&self) -> String;
fn write_single_letter(&self, writer: impl Write) -> Result<(), Error>;
fn write_three_letters(&self, writer: impl Write) -> Result<(), Error>;
}Expand description
§Amino acid codes
As defined in [Dayhoff1965].
use aa_name::{AminoAcid, Code};
let alanine = AminoAcid::Alanine;
let tyrosine = AminoAcid::Tyrosine;
// get one letter code
assert_eq!(alanine.single_letter(), 'A');
// get three letters code
assert_eq!(tyrosine.three_letters(), "Tyr");
let mut buffer = Vec::new();
tyrosine.write_single_letter(&mut buffer).unwrap();
alanine.write_single_letter(&mut buffer).unwrap();
assert_eq!(std::str::from_utf8(&buffer).unwrap(), "YA");
let mut buffer = Vec::new();
tyrosine.write_three_letters(&mut buffer).unwrap();
alanine.write_three_letters(&mut buffer).unwrap();
assert_eq!(std::str::from_utf8(&buffer).unwrap(), "TyrAla");§References
- [Dayhoff1965]: Dayhoff, MO, RV Eck, MA Chang, and MR Sochard. 1965. ‘Atlas of Protein Sequence and Structure’. https://ntrs.nasa.gov/citations/19660014530
Required Methods§
fn single_letter(&self) -> char
fn three_letters(&self) -> String
fn write_single_letter(&self, writer: impl Write) -> Result<(), Error>
fn write_three_letters(&self, writer: impl Write) -> Result<(), Error>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.