1pub type Text = Vec<u8>;
3pub type TextSlice<'a> = &'a [u8];
5
6pub fn trim_newline(s: &mut String) {
8 if s.ends_with('\n') {
9 s.pop();
10 }
11}
12
13#[cfg(test)]
14mod tests {
15 use super::*;
16 use std::ops::Deref;
17
18 fn print_sequence<Item: Deref<Target = u8>, T: IntoIterator<Item = Item>>(sequence: T) {
21 for c in sequence {
22 println!("{}", *c);
23 }
24 }
25
26 #[test]
27 fn test_print_sequence() {
28 let s = b"ACGT";
29 print_sequence(s.iter().step_by(1));
31 print_sequence(&s[..]);
33 print_sequence(&vec![b'A', b'C']);
35 println!("{:?}", s);
37 }
38
39 #[test]
40 fn test_trim_newline_from_string() {
41 let mut s = String::from("AGCT\n");
42 trim_newline(&mut s);
43 assert_eq!(s, String::from("AGCT"));
44 }
45}