sars 0.1.0

SARS is a Lightweight Suffix Arrays Library for Rust
Documentation
use std::path::Component::Prefix;

pub type PrefixLength = Option<usize>;
pub type FastaFilePath = String;
pub type BinaryFilePath = String;
pub type OutputFilePath = String;

pub fn longest_common_prefix(s1: &str, offset1: usize, s2: &str, offset2: usize) -> usize {
	let mut s1 = &s1.as_bytes()[offset1..];
	let mut s2 = &s2.as_bytes()[offset2..];

	if s1.len() < s2.len() {
		s2 = &s2[..s1.len()];
	} else {
		s1 = &s1[..s2.len()];
	}
	for i in 0..s1.len() {
		if s1[i] != s2[i] {
			return i;
		}
	}
	return s1.len();
}


#[cfg(test)]
mod test {
	use crate::commons::commons::longest_common_prefix;
	#[test]
	fn small_test() {
		assert_eq!(longest_common_prefix(&"alpalp".to_string(), 0, &"alp".to_string(), 0), 3);
		assert_eq!(longest_common_prefix(&"lpalp".to_string(), 0, &"alp".to_string(), 0), 0);
		assert_eq!(longest_common_prefix(&"lpalp".to_string(), 2, &"alp".to_string(), 0), 3);
		assert_eq!(longest_common_prefix(&"apalp".to_string(), 3, &"alp".to_string(), 1), 2);
	}
}