Function rustfst::algorithms::project[][src]

pub fn project<W: Semiring, F: MutableFst<W>>(
    fst: &mut F,
    project_type: ProjectType
)
Expand description

This operation projects an FST onto its domain or range by either copying each transition input label to its output label or vice versa.

Example 1

Project input

let mut fst : VectorFst<IntegerWeight> = fst![2 => 3];
project(&mut fst, ProjectType::ProjectInput);
assert_eq!(fst, fst![2]);

Project output

let mut fst : VectorFst<IntegerWeight> = fst![2 => 3];
project(&mut fst, ProjectType::ProjectOutput);
assert_eq!(fst, fst![3]);

Example 2

Input

project_in

Project input

project_out_project-input

Project output

project_out_project-input