Lines Matching refs:StepCursor
330 pub struct StepCursor<'c, 'a> {
334 // This field is contravariant in 'c. Together these make StepCursor
336 // different lifetime but can upcast into a StepCursor with a shorter
339 // As long as we only ever construct a StepCursor for which 'c outlives 'a,
340 // this means if ever a StepCursor<'c, 'a> exists we are guaranteed that 'c
345 impl<'c, 'a> Deref for StepCursor<'c, 'a> {
353 impl<'c, 'a> Copy for StepCursor<'c, 'a> {}
355 impl<'c, 'a> Clone for StepCursor<'c, 'a> {
361 impl<'c, 'a> StepCursor<'c, 'a> {
371 pub(crate) fn advance_step_cursor<'c, 'a>(proof: StepCursor<'c, 'a>, to: Cursor<'c>) -> Cursor<'a> {
372 // Refer to the comments within the StepCursor definition. We use the
373 // fact that a StepCursor<'c, 'a> exists as proof that 'c outlives 'a.
1054 F: for<'c> FnOnce(StepCursor<'c, 'a>) -> Result<(R, Cursor<'c>)>,
1058 // StepCursor<'c, 'a> or from a Cursor<'static>.
1061 // lifetime 'c in StepCursor<'c, 'a>. If this function were written only
1070 // existence of a StepCursor<'c, 'a> as proof that it is safe to cast
1072 // safe to expose that API as a method on StepCursor.
1073 let (node, rest) = function(StepCursor {