enum Token { _LeftAngle, _RightAngle } struct ParseMaster

{ _failures: P, } struct Alternate<'pm, P: 'pm, T> { _master: &'pm mut ParseMaster

, _current: Option>, _point: P, } struct TokenPoint<'a, T: 'a> { _offset: usize, _sub_offset: Option, _s: &'a [T], } impl

ParseMaster

{ fn alternate<'pm, T>(&'pm mut self, pt: P) -> Alternate<'pm, P, T> { Alternate { _master: self, _current: None, _point: pt, } } } struct Progress { _point: P, _status: Status, } enum Status { _Success(T), _Failure, } fn main() { let mut pm : ParseMaster> = ParseMaster { _failures: TokenPoint { _offset: 0, _sub_offset: None, _s:&[], }, }; pm.alternate::<()>(TokenPoint { _offset: 0, _sub_offset: None, _s:&[], }); }