Struct core::str::pattern::TwoWaySearcher
source · struct TwoWaySearcher {
crit_pos: usize,
crit_pos_back: usize,
period: usize,
byteset: u64,
position: usize,
end: usize,
memory: usize,
memory_back: usize,
}
🔬This is a nightly-only experimental API. (
pattern
#27721)Expand description
The internal state of the two-way substring search algorithm.
Fields§
§crit_pos: usize
🔬This is a nightly-only experimental API. (
pattern
#27721)critical factorization index
crit_pos_back: usize
🔬This is a nightly-only experimental API. (
pattern
#27721)critical factorization index for reversed needle
period: usize
🔬This is a nightly-only experimental API. (
§pattern
#27721)byteset: u64
🔬This is a nightly-only experimental API. (
pattern
#27721)byteset
is an extension (not part of the two way algorithm);
it’s a 64-bit “fingerprint” where each set bit j
corresponds
to a (byte & 63) == j present in the needle.
position: usize
🔬This is a nightly-only experimental API. (
§pattern
#27721)end: usize
🔬This is a nightly-only experimental API. (
§pattern
#27721)memory: usize
🔬This is a nightly-only experimental API. (
pattern
#27721)index into needle before which we have already matched
memory_back: usize
🔬This is a nightly-only experimental API. (
pattern
#27721)index into needle after which we have already matched
Implementations§
source§impl TwoWaySearcher
impl TwoWaySearcher
fn new(needle: &[u8], end: usize) -> TwoWaySearcher
🔬This is a nightly-only experimental API. (
pattern
#27721)fn byteset_create(bytes: &[u8]) -> u64
🔬This is a nightly-only experimental API. (
pattern
#27721)fn byteset_contains(&self, byte: u8) -> bool
🔬This is a nightly-only experimental API. (
pattern
#27721)fn next<S>( &mut self, haystack: &[u8], needle: &[u8], long_period: bool ) -> S::Outputwhere S: TwoWayStrategy,
🔬This is a nightly-only experimental API. (
pattern
#27721)fn next_back<S>( &mut self, haystack: &[u8], needle: &[u8], long_period: bool ) -> S::Outputwhere S: TwoWayStrategy,
🔬This is a nightly-only experimental API. (
pattern
#27721)fn maximal_suffix(arr: &[u8], order_greater: bool) -> (usize, usize)
🔬This is a nightly-only experimental API. (
pattern
#27721)fn reverse_maximal_suffix( arr: &[u8], known_period: usize, order_greater: bool ) -> usize
🔬This is a nightly-only experimental API. (
pattern
#27721)Trait Implementations§
source§impl Clone for TwoWaySearcher
impl Clone for TwoWaySearcher
source§fn clone(&self) -> TwoWaySearcher
fn clone(&self) -> TwoWaySearcher
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreAuto Trait Implementations§
impl Freeze for TwoWaySearcher
impl RefUnwindSafe for TwoWaySearcher
impl Send for TwoWaySearcher
impl Sync for TwoWaySearcher
impl Unpin for TwoWaySearcher
impl UnwindSafe for TwoWaySearcher
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more