pub type Text = Vec<u8>;
pub type TextSlice<'a> = &'a [u8];
pub fn trim_newline(s: &mut String) {
if s.ends_with('\n') {
s.pop();
}
}
#[cfg(test)]
mod tests {
use super::*;
use std::ops::Deref;
fn print_sequence<Item: Deref<Target = u8>, T: IntoIterator<Item = Item>>(sequence: T) {
for c in sequence {
println!("{}", *c);
}
}
#[test]
fn test_print_sequence() {
let s = b"ACGT";
print_sequence(s.iter().step_by(1));
print_sequence(&s[..]);
print_sequence(&vec![b'A', b'C']);
println!("{:?}", s);
}
#[test]
fn test_trim_newline_from_string() {
let mut s = String::from("AGCT\n");
trim_newline(&mut s);
assert_eq!(s, String::from("AGCT"));
}
}