1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
use std::fmt::Debug;

use anyhow::Result;

use crate::fst_properties::FstProperties;
use crate::{Semiring, StateId, TrsVec};

pub trait FstOp2<W: Semiring>: Debug {
    // was FstImpl
    fn compute_start(&self) -> Result<Option<StateId>>;
    fn compute_trs_and_final_weight(&self, id: usize) -> Result<(TrsVec<W>, Option<W>)>;

    fn properties(&self) -> FstProperties;
}