Code

Trait Code 

Source
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

Required Methods§

Source

fn single_letter(&self) -> char

Source

fn three_letters(&self) -> String

Source

fn write_single_letter(&self, writer: impl Write) -> Result<(), Error>

Source

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.

Implementors§