use crate::State;
use core::iter::Chain;
pub trait StateIterator: Iterator + State + Sized {
fn state_as_item(&self) -> Option<<Self as std::iter::Iterator>::Item>;
#[inline]
fn trajectory(self) -> Chain<std::option::IntoIter<<Self as std::iter::Iterator>::Item>, Self> {
self.state_as_item().into_iter().chain(self)
}
}