Struct steap_by_steap::nonfiniteautomata::NFA
source · pub struct NFA {
states: HashSet<State>,
alphabet: HashSet<SymbolLocal>,
transitions: HashMap<State, Vec<(SymbolLocal, State)>>,
start_state: State,
accept_states: HashSet<State>,
}
Fields§
§states: HashSet<State>
§alphabet: HashSet<SymbolLocal>
§transitions: HashMap<State, Vec<(SymbolLocal, State)>>
§start_state: State
§accept_states: HashSet<State>
Implementations§
source§impl NFA
impl NFA
sourcefn new(start_state: State, accept_states: Vec<State>) -> Self
fn new(start_state: State, accept_states: Vec<State>) -> Self
Creates a new NFA with the given start state and accept states.
§Arguments
start_state
- The initial state of the NFA.accept_states
- A list of accept states for the NFA.
sourcefn add_transition(&mut self, from: State, py_symbol: &Symbol, to: State)
fn add_transition(&mut self, from: State, py_symbol: &Symbol, to: State)
Adds a transition to the NFA.
§Arguments
from
- The state from which the transition starts.py_symbol
- The symbol that triggers the transition.to
- The state to which the transition goes.
Trait Implementations§
source§impl HasPyGilRef for NFA
impl HasPyGilRef for NFA
§type AsRefTarget = PyCell<NFA>
type AsRefTarget = PyCell<NFA>
Utility type to make Py::as_ref work.
source§impl PyClassImpl for NFA
impl PyClassImpl for NFA
source§const IS_BASETYPE: bool = false
const IS_BASETYPE: bool = false
#[pyclass(subclass)]
source§const IS_SUBCLASS: bool = false
const IS_SUBCLASS: bool = false
#[pyclass(extends=…)]
source§const IS_MAPPING: bool = false
const IS_MAPPING: bool = false
#[pyclass(mapping)]
source§const IS_SEQUENCE: bool = false
const IS_SEQUENCE: bool = false
#[pyclass(sequence)]
§type ThreadChecker = SendablePyClass<NFA>
type ThreadChecker = SendablePyClass<NFA>
This handles following two situations: Read more
§type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
Immutable or mutable
§type Dict = PyClassDummySlot
type Dict = PyClassDummySlot
Specify this class has
#[pyclass(dict)]
or not.§type WeakRef = PyClassDummySlot
type WeakRef = PyClassDummySlot
Specify this class has
#[pyclass(weakref)]
or not.§type BaseNativeType = PyAny
type BaseNativeType = PyAny
The closest native ancestor. This is
PyAny
by default, and when you declare
#[pyclass(extends=PyDict)]
, it’s PyDict
.fn items_iter() -> PyClassItemsIter
fn lazy_type_object() -> &'static LazyTypeObject<Self>
fn dict_offset() -> Option<isize>
fn weaklist_offset() -> Option<isize>
source§impl PyClassNewTextSignature<NFA> for PyClassImplCollector<NFA>
impl PyClassNewTextSignature<NFA> for PyClassImplCollector<NFA>
fn new_text_signature(self) -> Option<&'static str>
source§impl<'a, 'py> PyFunctionArgument<'a, 'py> for &'a NFA
impl<'a, 'py> PyFunctionArgument<'a, 'py> for &'a NFA
source§impl<'a, 'py> PyFunctionArgument<'a, 'py> for &'a mut NFA
impl<'a, 'py> PyFunctionArgument<'a, 'py> for &'a mut NFA
source§impl PyMethods<NFA> for PyClassImplCollector<NFA>
impl PyMethods<NFA> for PyClassImplCollector<NFA>
fn py_methods(self) -> &'static PyClassItems
source§impl PyTypeInfo for NFA
impl PyTypeInfo for NFA
source§fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
Returns the PyTypeObject instance for this type.
source§fn type_object(py: Python<'_>) -> &PyType
fn type_object(py: Python<'_>) -> &PyType
👎Deprecated since 0.21.0:
PyTypeInfo::type_object
will be replaced by PyTypeInfo::type_object_bound
in a future PyO3 versionReturns the safe abstraction over the type object.
source§fn type_object_bound(py: Python<'_>) -> Bound<'_, PyType>
fn type_object_bound(py: Python<'_>) -> Bound<'_, PyType>
Returns the safe abstraction over the type object.
source§fn is_type_of(object: &PyAny) -> bool
fn is_type_of(object: &PyAny) -> bool
👎Deprecated since 0.21.0:
PyTypeInfo::is_type_of
will be replaced by PyTypeInfo::is_type_of_bound
in a future PyO3 versionChecks if
object
is an instance of this type or a subclass of this type.source§fn is_type_of_bound(object: &Bound<'_, PyAny>) -> bool
fn is_type_of_bound(object: &Bound<'_, PyAny>) -> bool
Checks if
object
is an instance of this type or a subclass of this type.source§fn is_exact_type_of(object: &PyAny) -> bool
fn is_exact_type_of(object: &PyAny) -> bool
👎Deprecated since 0.21.0:
PyTypeInfo::is_exact_type_of
will be replaced by PyTypeInfo::is_exact_type_of_bound
in a future PyO3 versionChecks if
object
is an instance of this type.impl DerefToPyAny for NFA
Auto Trait Implementations§
impl Freeze for NFA
impl RefUnwindSafe for NFA
impl Send for NFA
impl Sync for NFA
impl Unpin for NFA
impl UnwindSafe for NFA
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more