Search

Trait Search 

Source
pub trait Search {
    // Required methods
    fn search<'a, P: SearchIn<'a>>(&'a self, needle: P) -> Option<usize>;
    fn rsearch<'a, P: SearchIn<'a>>(&'a self, needle: P) -> Option<usize>;
    fn search_indices<'a, P: SearchIn<'a>>(
        &'a self,
        needle: P,
    ) -> SearchIndices<'a, P> ;
    fn rsearch_indices<'a, P: SearchIn<'a>>(
        &'a self,
        needle: P,
    ) -> RevSearchIndices<'a, P> ;
    fn includes<'a, P: SearchIn<'a>>(&'a self, needle: P) -> bool;
    fn search_ignore_ascii_case<'a, P: SearchIn<'a>>(
        &'a self,
        needle: P,
    ) -> Option<usize>;
    fn rsearch_ignore_ascii_case<'a, P: SearchIn<'a>>(
        &'a self,
        needle: P,
    ) -> Option<usize>;
    fn search_indices_ignore_ascii_case<'a, P: SearchIn<'a>>(
        &'a self,
        needle: P,
    ) -> SearchIndicesIgnoreAsciiCase<'a, P> ;
    fn rsearch_indices_ignore_ascii_case<'a, P: SearchIn<'a>>(
        &'a self,
        needle: P,
    ) -> RevSearchIndicesIgnoreAsciiCase<'a, P> ;
    fn includes_ignore_ascii_case<'a, P: SearchIn<'a>>(
        &'a self,
        needle: P,
    ) -> bool;
}
Expand description

search the needle

Required Methods§

Source

fn search<'a, P: SearchIn<'a>>(&'a self, needle: P) -> Option<usize>

search the needle in self.

return index of self, if it found the needle. Otherwise return None.

Source

fn rsearch<'a, P: SearchIn<'a>>(&'a self, needle: P) -> Option<usize>

reverse search the needle in self.

return index of self, if it found the needle. Otherwise return None.

Source

fn search_indices<'a, P: SearchIn<'a>>( &'a self, needle: P, ) -> SearchIndices<'a, P>

An iterator over the matches of needle in self.

Examples

use naive_opt::Search;

let v: Vec<_> = "abc345abc901abc".search_indices("abc").collect();
assert_eq!(v, [(0, "abc"), (6, "abc"), (12, "abc")]);

let v: Vec<_> = "0abcabc7".search_indices("abc").collect();
assert_eq!(v, [(1, "abc"), (4, "abc")]);

let v: Vec<_> = "ababa".search_indices("aba").collect();
assert_eq!(v, [(0, "aba")]); // only the first `aba`
Source

fn rsearch_indices<'a, P: SearchIn<'a>>( &'a self, needle: P, ) -> RevSearchIndices<'a, P>

An reverse search iterator over the matches of needle in self.

Examples

use naive_opt::Search;

let v: Vec<_> = "abc345abc901abc".rsearch_indices("abc").collect();
assert_eq!(v, [(12, "abc"), (6, "abc"), (0, "abc")]);

let v: Vec<_> = "0abcabc7".rsearch_indices("abc").collect();
assert_eq!(v, [(4, "abc"), (1, "abc")]);

let v: Vec<_> = "ababa".rsearch_indices("aba").collect();
assert_eq!(v, [(2, "aba")]); // only the last `aba`
Source

fn includes<'a, P: SearchIn<'a>>(&'a self, needle: P) -> bool

includes the needle in self.

returns true if the given pattern matches a sub-slice of this string slice. returns false if it does not.

Source

fn search_ignore_ascii_case<'a, P: SearchIn<'a>>( &'a self, needle: P, ) -> Option<usize>

search the needle in self, ignore ascii case.

return index of self, if it found the needle. Otherwise return None.

Source

fn rsearch_ignore_ascii_case<'a, P: SearchIn<'a>>( &'a self, needle: P, ) -> Option<usize>

reverse search the needle in self, ignore ascii case.

return index of self, if it found the needle. Otherwise return None.

Source

fn search_indices_ignore_ascii_case<'a, P: SearchIn<'a>>( &'a self, needle: P, ) -> SearchIndicesIgnoreAsciiCase<'a, P>

An iterator over the matches of needle in self, ignore ascii case.

Source

fn rsearch_indices_ignore_ascii_case<'a, P: SearchIn<'a>>( &'a self, needle: P, ) -> RevSearchIndicesIgnoreAsciiCase<'a, P>

An reverse search iterator over the matches of needle in self, ignore ascii case.

Source

fn includes_ignore_ascii_case<'a, P: SearchIn<'a>>(&'a self, needle: P) -> bool

includes the needle in self, ignore ascii case.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl Search for &str

Source§

fn search<'a, P: SearchIn<'a>>(&'a self, needle: P) -> Option<usize>

Source§

fn rsearch<'a, P: SearchIn<'a>>(&'a self, needle: P) -> Option<usize>

Source§

fn search_indices<'a, P: SearchIn<'a>>( &'a self, needle: P, ) -> SearchIndices<'a, P>

Source§

fn rsearch_indices<'a, P: SearchIn<'a>>( &'a self, needle: P, ) -> RevSearchIndices<'a, P>

Source§

fn includes<'a, P: SearchIn<'a>>(&'a self, needle: P) -> bool

Source§

fn search_ignore_ascii_case<'a, P: SearchIn<'a>>( &'a self, needle: P, ) -> Option<usize>

Source§

fn rsearch_ignore_ascii_case<'a, P: SearchIn<'a>>( &'a self, needle: P, ) -> Option<usize>

Source§

fn search_indices_ignore_ascii_case<'a, P: SearchIn<'a>>( &'a self, needle: P, ) -> SearchIndicesIgnoreAsciiCase<'a, P>

Source§

fn rsearch_indices_ignore_ascii_case<'a, P: SearchIn<'a>>( &'a self, needle: P, ) -> RevSearchIndicesIgnoreAsciiCase<'a, P>

Source§

fn includes_ignore_ascii_case<'a, P: SearchIn<'a>>(&'a self, needle: P) -> bool

Source§

impl Search for String

Source§

fn search<'a, P: SearchIn<'a>>(&'a self, needle: P) -> Option<usize>

Source§

fn rsearch<'a, P: SearchIn<'a>>(&'a self, needle: P) -> Option<usize>

Source§

fn search_indices<'a, P: SearchIn<'a>>( &'a self, needle: P, ) -> SearchIndices<'a, P>

Source§

fn rsearch_indices<'a, P: SearchIn<'a>>( &'a self, needle: P, ) -> RevSearchIndices<'a, P>

Source§

fn includes<'a, P: SearchIn<'a>>(&'a self, needle: P) -> bool

Source§

fn search_ignore_ascii_case<'a, P: SearchIn<'a>>( &'a self, needle: P, ) -> Option<usize>

Source§

fn rsearch_ignore_ascii_case<'a, P: SearchIn<'a>>( &'a self, needle: P, ) -> Option<usize>

Source§

fn search_indices_ignore_ascii_case<'a, P: SearchIn<'a>>( &'a self, needle: P, ) -> SearchIndicesIgnoreAsciiCase<'a, P>

Source§

fn rsearch_indices_ignore_ascii_case<'a, P: SearchIn<'a>>( &'a self, needle: P, ) -> RevSearchIndicesIgnoreAsciiCase<'a, P>

Source§

fn includes_ignore_ascii_case<'a, P: SearchIn<'a>>(&'a self, needle: P) -> bool

Implementors§