use executor::State;
use il;
#[derive(Clone, Debug)]
pub enum SuccessorType {
FallThrough,
Branch(u64),
Raise(il::Expression)
}
#[derive(Clone)]
pub struct Successor<'s> {
state: State<'s>,
type_: SuccessorType
}
impl<'s> Successor<'s> {
pub(crate) fn new(state: State<'s>, type_: SuccessorType) -> Successor<'s> {
Successor {
state: state,
type_: type_
}
}
pub fn type_(&self) -> &SuccessorType {
&self.type_
}
pub fn state(&self) -> &State {
&self.state
}
}
impl<'e> Into<State<'e>> for Successor<'e> {
fn into(self) -> State<'e> {
self.state
}
}