MCPcopy Create free account
hub / github.com/bytecodealliance/wasmtime / find_subsequence

Function find_subsequence

cranelift/codegen/meta/src/unique_table.rs:88–101  ·  view source on GitHub ↗

Try to find the subsequence `sub` in the `whole` sequence. Returns None if it's not been found, or Some(index) if it has been. Naive implementation until proven we need something better.

(sub: &[T], whole: &[T])

Source from the content-addressed store, hash-verified

86/// it's not been found, or Some(index) if it has been. Naive implementation
87/// until proven we need something better.
88fn find_subsequence<T: PartialEq>(sub: &[T], whole: &[T]) -> Option<usize> {
89 assert!(!sub.is_empty());
90 // We want i + sub.len() <= whole.len(), i.e. i < whole.len() + 1 - sub.len().
91 if whole.len() < sub.len() {
92 return None;
93 }
94 let max = whole.len() - sub.len();
95 for i in 0..=max {
96 if whole[i..i + sub.len()] == sub[..] {
97 return Some(i);
98 }
99 }
100 None
101}
102
103#[test]
104fn test_find_subsequence() {

Callers 1

addMethod · 0.85

Calls 1

lenMethod · 0.45

Tested by

no test coverage detected