Struct fst::automaton::Subsequence
source · pub struct Subsequence<'a> { /* private fields */ }
Expand description
An automaton that matches if the input contains a specific subsequence.
It can be used to build a simple fuzzy-finder.
extern crate fst;
use std::error::Error;
use fst::{IntoStreamer, Streamer, Set};
use fst::automaton::Subsequence;
fn example() -> Result<(), Box<Error>> {
let paths = vec!["/home/projects/bar", "/home/projects/foo", "/tmp/foo"];
let set = Set::from_iter(paths)?;
// Build our fuzzy query.
let subseq = Subsequence::new("hpf");
// Apply our fuzzy query to the set we built.
let mut stream = set.search(subseq).into_stream();
let matches = stream.into_strs()?;
assert_eq!(matches, vec!["/home/projects/foo"]);
Ok(())
}
Implementations
sourceimpl<'a> Subsequence<'a>
impl<'a> Subsequence<'a>
sourcepub fn new(subsequence: &'a str) -> Subsequence<'a>
pub fn new(subsequence: &'a str) -> Subsequence<'a>
Constructs automaton that matches input containing the specified subsequence.
Trait Implementations
sourceimpl<'a> Automaton for Subsequence<'a>
impl<'a> Automaton for Subsequence<'a>
sourcefn can_match(&self, _: &usize) -> bool
fn can_match(&self, _: &usize) -> bool
Returns true if and only if
state
can lead to a match in zero or more
steps. Read moresourcefn will_always_match(&self, state: &usize) -> bool
fn will_always_match(&self, state: &usize) -> bool
Returns true if and only if
state
matches and must match no matter
what steps are taken. Read moresourcefn accept(&self, state: &usize, byte: u8) -> usize
fn accept(&self, state: &usize, byte: u8) -> usize
Return the next state given
state
and an input.sourcefn starts_with(self) -> StartsWith<Self>where
Self: Sized,
fn starts_with(self) -> StartsWith<Self>where
Self: Sized,
Returns an automaton that matches the strings that start with something
this automaton matches. Read more
sourcefn union<Rhs: Automaton>(self, rhs: Rhs) -> Union<Self, Rhs>where
Self: Sized,
fn union<Rhs: Automaton>(self, rhs: Rhs) -> Union<Self, Rhs>where
Self: Sized,
Returns an automaton that matches the strings matched by either this or
the other automaton. Read more
sourcefn intersection<Rhs: Automaton>(self, rhs: Rhs) -> Intersection<Self, Rhs>where
Self: Sized,
fn intersection<Rhs: Automaton>(self, rhs: Rhs) -> Intersection<Self, Rhs>where
Self: Sized,
Returns an automaton that matches the strings matched by both this and
the other automaton. Read more
sourcefn complement(self) -> Complement<Self>where
Self: Sized,
fn complement(self) -> Complement<Self>where
Self: Sized,
Returns an automaton that matches the strings not matched by this
automaton. Read more
sourceimpl<'a> Clone for Subsequence<'a>
impl<'a> Clone for Subsequence<'a>
sourcefn clone(&self) -> Subsequence<'a>
fn clone(&self) -> Subsequence<'a>
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreAuto Trait Implementations
impl<'a> RefUnwindSafe for Subsequence<'a>
impl<'a> Send for Subsequence<'a>
impl<'a> Sync for Subsequence<'a>
impl<'a> Unpin for Subsequence<'a>
impl<'a> UnwindSafe for Subsequence<'a>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more