[][src]Trait rustfst::fst_traits::StateIterator

pub trait StateIterator<'a> {
    type Iter: Iterator<Item = StateId>;
    fn states_iter(&'a self) -> Self::Iter;
}

Trait to iterate over the states of a wFST.

Associated Types

type Iter: Iterator<Item = StateId>

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

Loading content...

Required methods

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]);
Loading content...

Implementations on Foreign Types

impl<'a, F: StateIterator<'a>> StateIterator<'a> for Arc<F>[src]

type Iter = F::Iter

Loading content...

Implementors

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

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

impl<'a, W> StateIterator<'a> for ConstFst<W>[src]

type Iter = Range<StateId>

impl<'a, W, CFB, Cache> StateIterator<'a> for ComposeFst<W, CFB, Cache> where
    W: Semiring,
    CFB: ComposeFilterBuilder<W> + 'a,
    Cache: FstCache<W> + 'a, 
[src]

type Iter = <LazyFst<W, ComposeFstOp<W, CFB>, Cache> as StateIterator<'a>>::Iter

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

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

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

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

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

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

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

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

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

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

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, 
[src]

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

impl<'a, W, F: StateIterator<'a>, M, T> StateIterator<'a> for MatcherFst<W, F, M, T>[src]

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

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

type Iter = StatesIteratorLazyFst<'a, Self>

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

type Iter = StatesIteratorLazyFst<'a, Self>

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

type Iter = Range<StateId>

Loading content...