divvunspell 1.0.0-beta.3

Spell checking library for ZHFST/BHFST spellers, with case handling and tokenization support.
Documentation
use crate::types::{SymbolNumber, TransitionTableIndex, Weight};

#[derive(Debug, Clone)]
pub struct SymbolTransition {
    target: Option<TransitionTableIndex>,
    symbol: Option<SymbolNumber>,
    weight: Option<Weight>,
}

impl SymbolTransition {
    pub fn new(
        target: Option<TransitionTableIndex>,
        symbol: Option<SymbolNumber>,
        weight: Option<Weight>,
    ) -> SymbolTransition {
        SymbolTransition {
            target,
            symbol,
            weight,
        }
    }

    #[inline(always)]
    pub fn target(&self) -> Option<TransitionTableIndex> {
        self.target
    }

    #[inline(always)]
    pub fn symbol(&self) -> Option<SymbolNumber> {
        self.symbol
    }

    #[inline(always)]
    pub fn weight(&self) -> Option<Weight> {
        self.weight
    }

    #[inline(always)]
    pub fn clone_with_epsilon_symbol(&self) -> SymbolTransition {
        SymbolTransition {
            target: self.target,
            symbol: Some(0),
            weight: self.weight,
        }
    }
}