Function textspan::align_spans_by_mapping [−][src]
pub fn align_spans_by_mapping<T: AsRef<[usize]>>(
spans: &[Span],
mapping: &[T]
) -> Vec<Vec<Span>>
Converts the spans by the given mapping
.
Generally speaking, the character correspondence between two texts is not
necessarily surjective, not injective, not even a methematical map - some
character in textA
may not have a correspondence in textB
, or may have
multiple correspondences in textB
. Thus, mapping
should be provided as
Vec<Vec<Span>>
.
Examples
let spans = [(0, 2), (3, 4)]; let mapping = [vec![0, 1], vec![], vec![2], vec![4, 5, 6]]; assert_eq!( textspan::align_spans_by_mapping(&spans, &mapping), [[(0, 2)], [(4, 7)]] )