fn execute_once(&self, conf: Configuration<S>) -> Result<Configuration<S>, String> {
        let next = self.machine.execute_once(conf.clone())?;
        if let Some(ref c_handler) = self.c_handler {
            c_handler(&conf);
        }
        if let Some(ref i_handler) = self.i_handler {
            let head = Head::new(conf.state, conf.get_symbol().clone());
            let movement = match (conf.index(), next.index()) {
                (old, new) if old < new => Move::Right,
                (old, new) if old == new => Move::None,
                (old, new) if old > new => Move::Right,
                (old, new) => panic!(
                    "execute_once error: not all compare cases are covered for old {} and new {} indexes",
                    old,
                    new
                )
            };
            let tail = Tail::new(next.state, next.get_symbol().clone(), movement);
            i_handler(&head, &tail);
        }
        Ok(next)
    }
/// Executes [`Configuration`] once by mutation.
///
/// Works quickly when no handler is set (but you probably don't want to
/// use the debugger without the debugging).
///
/// # Panics
/// [`Debugger`] could panic only if source code is broken - this would be a bug.
/// All match cases must and are covered.
///
/// So you could open an issue on [GitHub](https://github.com/Helltraitor/turing-machine-rs).
Executes [`Configuration`] once by mutation.
Works quickly when no handler is set (but you probably don't want to
use the debugger without the debugging).
Executes [ ` Configuration ` ] once by mutation . Works quickly when no handler is set ( but you probably don ' t want to use the debugger without the debugging ) .
fn execute_once(&self, conf: Configuration<S>) -> Result<Configuration<S>, String> {
        let next = self.machine.execute_once(conf.clone())?;
        if let Some(ref c_handler) = self.c_handler {
            c_handler(&conf);
        }
        if let Some(ref i_handler) = self.i_handler {
            let head = Head::new(conf.state, conf.get_symbol().clone());
            let movement = match (conf.index(), next.index()) {
                (old, new) if old < new => Move::Right,
                (old, new) if old == new => Move::None,
                (old, new) if old > new => Move::Right,
                (old, new) => panic!(
                    "execute_once error: not all compare cases are covered for old {} and new {} indexes",
                    old,
                    new
                )
            };
            let tail = Tail::new(next.state, next.get_symbol().clone(), movement);
            i_handler(&head, &tail);
        }
        Ok(next)
    }
fn execute_once ( & self , conf : Configuration < S > ) -> Result < Configuration < S > , String > { let next = self . machine . execute_once ( conf . clone ( ) ) ? ; if let Some ( ref c_handler ) = self . c_handler { c_handler ( & conf ) ; } if let Some ( ref i_handler ) = self . i_handler { let head = Head :: new ( conf . state , conf . get_symbol ( ) . clone ( ) ) ; let movement = match ( conf . index ( ) , next . index ( ) ) { ( old , new ) if old < new => Move :: Right , ( old , new ) if old == new => Move :: None , ( old , new ) if old > new => Move :: Right , ( old , new ) => panic ! ( " " old new ) } ; let tail = Tail :: new ( next . state , next . get_symbol ( ) . clone ( ) , movement ) ; i_handler ( & head , & tail ) ; } Ok ( next ) }
Executes [`Configuration`] once by mutation.
Executes [ ` Configuration ` ] once by mutation .
&self
conf
Configuration<S>
&self
conf
Configuration<S>
panics
[`Debugger`] could panic only if source code is broken - this would be a bug.
All match cases must and are covered.

So you could open an issue on [GitHub].
[ ` Debugger ` ] could panic only if source code is broken - this would be a bug . All match cases must and are covered . So you could open an issue on [ GitHub ] .