Struct typestate_automata::DeterministicFiniteAutomata [−][src]
pub struct DeterministicFiniteAutomata<State, Transition> where
State: Eq + Hash + Clone,
Transition: Eq + Hash + Clone, { pub states: HashSet<State>, pub initial_states: HashMap<State, HashSet<Transition>>, pub final_states: HashMap<State, HashSet<Transition>>, // some fields omitted }
Expand description
A representation for a deterministic finite automata.
Fields
states: HashSet<State>
Expand description
Deterministic finite automata states.
initial_states: HashMap<State, HashSet<Transition>>
Expand description
Deterministic finite automata initial state-indexes.
final_states: HashMap<State, HashSet<Transition>>
Expand description
Deterministic finite automata final state-indexes.
Implementations
impl<State, Transition> DeterministicFiniteAutomata<State, Transition> where
State: Eq + Hash + Clone,
Transition: Eq + Hash + Clone,
[src]
impl<State, Transition> DeterministicFiniteAutomata<State, Transition> where
State: Eq + Hash + Clone,
Transition: Eq + Hash + Clone,
[src]pub fn add_initial(&mut self, state: State, symbol: Transition)
[src]
pub fn add_initial(&mut self, state: State, symbol: Transition)
[src]Add an initial state to the automata.
pub fn add_final(&mut self, state: State, symbol: Transition)
[src]
pub fn add_final(&mut self, state: State, symbol: Transition)
[src]Add a final state to the automata.
pub fn add_transition(
&mut self,
source: State,
symbol: Transition,
destination: State
)
[src]
&mut self,
source: State,
symbol: Transition,
destination: State
)
#[must_use]pub fn productive_states(&self) -> HashSet<State>
[src]
#[must_use]pub fn productive_states(&self) -> HashSet<State>
[src]Compute the automata productive states.
#[must_use]pub fn non_productive_states(&self) -> HashSet<State>
[src]
#[must_use]pub fn non_productive_states(&self) -> HashSet<State>
[src]Compute the automata non-productive states.
This is done by calling DeterministicFiniteAutomata::productive_states
and performing a diference against the full state set.
#[must_use]pub fn useful_states(&self) -> HashSet<State>
[src]
#[must_use]pub fn useful_states(&self) -> HashSet<State>
[src]Compute the automata useful states.
#[must_use]pub fn non_useful_states(&self) -> HashSet<State>
[src]
#[must_use]pub fn non_useful_states(&self) -> HashSet<State>
[src]Compute the automata non-useful states.
This is done by calling DeterministicFiniteAutomata::useful_states
and performing a diference against the full state set.
Trait Implementations
impl<State: Clone, Transition: Clone> Clone for DeterministicFiniteAutomata<State, Transition> where
State: Eq + Hash + Clone,
Transition: Eq + Hash + Clone,
[src]
impl<State: Clone, Transition: Clone> Clone for DeterministicFiniteAutomata<State, Transition> where
State: Eq + Hash + Clone,
Transition: Eq + Hash + Clone,
[src]fn clone(&self) -> DeterministicFiniteAutomata<State, Transition>
[src]
fn clone(&self) -> DeterministicFiniteAutomata<State, Transition>
[src]Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]Performs copy-assignment from source
. Read more
impl<State: Debug, Transition: Debug> Debug for DeterministicFiniteAutomata<State, Transition> where
State: Eq + Hash + Clone,
Transition: Eq + Hash + Clone,
[src]
impl<State: Debug, Transition: Debug> Debug for DeterministicFiniteAutomata<State, Transition> where
State: Eq + Hash + Clone,
Transition: Eq + Hash + Clone,
[src]impl<State, Transition> Default for DeterministicFiniteAutomata<State, Transition> where
State: Eq + Hash + Clone,
Transition: Eq + Hash + Clone,
[src]
impl<State, Transition> Default for DeterministicFiniteAutomata<State, Transition> where
State: Eq + Hash + Clone,
Transition: Eq + Hash + Clone,
[src]Implementation of the Default
trait for a DeterministicFiniteAutomata
.
fn default() -> Self
[src]
fn default() -> Self
[src]This function is equivalent to DeterministicFiniteAutomata::new
.
Auto Trait Implementations
impl<State, Transition> RefUnwindSafe for DeterministicFiniteAutomata<State, Transition> where
State: RefUnwindSafe,
Transition: RefUnwindSafe,
State: RefUnwindSafe,
Transition: RefUnwindSafe,
impl<State, Transition> Send for DeterministicFiniteAutomata<State, Transition> where
State: Send,
Transition: Send,
State: Send,
Transition: Send,
impl<State, Transition> Sync for DeterministicFiniteAutomata<State, Transition> where
State: Sync,
Transition: Sync,
State: Sync,
Transition: Sync,
impl<State, Transition> Unpin for DeterministicFiniteAutomata<State, Transition> where
State: Unpin,
Transition: Unpin,
State: Unpin,
Transition: Unpin,
impl<State, Transition> UnwindSafe for DeterministicFiniteAutomata<State, Transition> where
State: UnwindSafe,
Transition: UnwindSafe,
State: UnwindSafe,
Transition: UnwindSafe,
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more
impl<T> ToOwned for T where
T: Clone,
[src]
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn to_owned(&self) -> T
[src]Creates owned data from borrowed data, usually by cloning. Read more
pub fn clone_into(&self, target: &mut T)
[src]
pub fn clone_into(&self, target: &mut T)
[src]🔬 This is a nightly-only experimental API. (toowned_clone_into
)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more