Skip to main content

StateIterator

Trait StateIterator 

Source
pub trait StateIterator<'a> {
    type Iter: Iterator<Item = StateId>;

    // Required method
    fn states_iter(&'a self) -> Self::Iter;
}
Expand description

Trait to iterate over the states of a wFST.

Required Associated Types§

Source

type Iter: Iterator<Item = StateId>

Iterator used to iterate over the state_id of the states of an FST.

Required Methods§

Source

fn states_iter(&'a self) -> Self::Iter

Creates an iterator over the state_id of the states of an FST.

§Example
let mut fst = VectorFst::<BooleanWeight>::new();

let s1 = fst.add_state();
let s2 = fst.add_state();

for state_id in fst.states_iter() {
    println!("State ID : {:?}", state_id);
}

let states : Vec<_> = fst.states_iter().collect();
assert_eq!(states, vec![s1, s2]);

Implementations on Foreign Types§

Source§

impl<'a, F: StateIterator<'a>> StateIterator<'a> for Arc<F>

Source§

type Iter = <F as StateIterator<'a>>::Iter

Source§

fn states_iter(&'a self) -> Self::Iter

Implementors§

Source§

impl<'a, F: StateIterator<'a>, T> StateIterator<'a> for FstAddOn<F, T>

Source§

type Iter = <F as StateIterator<'a>>::Iter

Source§

impl<'a, W> StateIterator<'a> for ConstFst<W>

Source§

impl<'a, W, F1, F2, B1, B2, M1, M2, CFB, Cache> StateIterator<'a> for ComposeFst<W, F1, F2, B1, B2, M1, M2, CFB, Cache>
where W: Semiring, F1: Fst<W> + 'a, F2: Fst<W> + 'a, B1: Borrow<F1> + Debug + Clone + 'a, B2: Borrow<F2> + Debug + Clone + 'a, M1: Matcher<W, F1, B1> + 'a, M2: Matcher<W, F2, B2> + 'a, CFB: ComposeFilterBuilder<W, F1, F2, B1, B2, M1, M2> + 'a, Cache: FstCache<W> + 'a,

Source§

type Iter = <LazyFst<W, ComposeFstOp<W, F1, F2, B1, B2, M1, M2, CFB>, Cache> as StateIterator<'a>>::Iter

Source§

impl<'a, W, F> StateIterator<'a> for ClosureFst<W, F>
where W: Semiring, F: Fst<W> + 'a,

Source§

type Iter = <ReplaceFst<W, F, F> as StateIterator<'a>>::Iter

Source§

impl<'a, W, F> StateIterator<'a> for ConcatFst<W, F>
where W: Semiring, F: Fst<W> + 'a,

Source§

type Iter = <ReplaceFst<W, F, F> as StateIterator<'a>>::Iter

Source§

impl<'a, W, F> StateIterator<'a> for UnionFst<W, F>
where W: Semiring, F: Fst<W> + 'a,

Source§

type Iter = <ReplaceFst<W, F, F> as StateIterator<'a>>::Iter

Source§

impl<'a, W, F, B> StateIterator<'a> for ReplaceFst<W, F, B>
where W: Semiring, F: Fst<W> + 'a, B: Borrow<F> + 'a,

Source§

type Iter = <LazyFst<W, ReplaceFstOp<W, F, B>, SimpleHashMapCache<W>> as StateIterator<'a>>::Iter

Source§

impl<'a, W, F, B> StateIterator<'a> for RmEpsilonFst<W, F, B>
where W: Semiring, F: MutableFst<W> + 'a, B: Borrow<F> + 'a,

Source§

type Iter = <LazyFst2<W, RmEpsilonOp<W, F, B>, SimpleHashMapCache<W>> as StateIterator<'a>>::Iter

Source§

impl<'a, W, F, B, FI> StateIterator<'a> for FactorWeightFst<W, F, B, FI>
where W: WeightQuantize, F: Fst<W> + 'a, B: Borrow<F> + 'a, FI: FactorIterator<W> + 'a,

Source§

type Iter = <LazyFst<W, FactorWeightOp<W, F, B, FI>, SimpleHashMapCache<W>> as StateIterator<'a>>::Iter

Source§

impl<'a, W, F, B, S> StateIterator<'a> for RandGenFst<W, F, B, S>
where W: Semiring<Type = f32>, F: Fst<W> + 'a, B: Borrow<F> + 'a, S: TrSelector + 'a,

Source§

type Iter = <LazyFst2<W, RandGenFstOp<W, F, B, S>, SimpleHashMapCache<W>> as StateIterator<'a>>::Iter

Source§

impl<'a, W, F: StateIterator<'a>, B: Borrow<F>, M, T> StateIterator<'a> for MatcherFst<W, F, B, M, T>

Source§

type Iter = <F as StateIterator<'a>>::Iter

Source§

impl<'a, W, Op, Cache> StateIterator<'a> for LazyFst2<W, Op, Cache>
where W: Semiring, Op: FstOp2<W> + 'a, Cache: FstCache<W> + 'a,

Source§

type Iter = StatesIteratorLazyFst<'a, LazyFst2<W, Op, Cache>>

Source§

impl<'a, W, Op, Cache> StateIterator<'a> for LazyFst<W, Op, Cache>
where W: Semiring, Op: FstOp<W> + 'a, Cache: FstCache<W> + 'a,

Source§

type Iter = StatesIteratorLazyFst<'a, LazyFst<W, Op, Cache>>

Source§

impl<'a, W: Semiring> StateIterator<'a> for VectorFst<W>