in amzn-smt-string-transformer/src/string_mappings.rs [380:399]
fn is_contained_in(pair1: (usize, usize), pair2: (usize, usize)) -> PairOverlap {
// subtract 1 bc string index is one less than length
let (start1, len1) = pair1;
let (start2, len2) = pair2;
let end1 = start1 + len1 - 1;
let end2 = start2 + len2 - 1;
if start1 > end2 || start2 > end1 {
return PairOverlap::No;
}
// if the pairs are equal it'll return SecondFull but it doesn't matter
if start1 <= start2 && end2 <= end1 {
// 2nd pair entirely in first pair
return PairOverlap::SecondFull;
} else if start2 <= start1 && end1 <= end2 {
// first pair entirely in 2nd pair
return PairOverlap::FirstFull;
}
PairOverlap::Partial
}