| #![crate_name = "foo"] | |
| //@ has foo/trait.LendingIterator.html | |
| pub trait LendingIterator { | |
| //@ has - '//*[@id="associatedtype.Item"]//h4[@class="code-header"]' "type Item<'a> where Self: 'a" | |
| type Item<'a> where Self: 'a; | |
| //@ has - '//*[@id="tymethod.next"]//h4[@class="code-header"]' \ | |
| // "fn next<'a>(&'a self) -> Self::Item<'a>" | |
| //@ has - '//*[@id="tymethod.next"]//h4[@class="code-header"]//a[@href="trait.LendingIterator.html#associatedtype.Item"]' \ | |
| // "Item" | |
| fn next<'a>(&'a self) -> Self::Item<'a>; | |
| } | |
| //@ has foo/trait.LendingIterator.html | |
| //@ has - '//*[@id="associatedtype.Item-1"]//h4[@class="code-header"]' "type Item<'a> = ()" | |
| impl LendingIterator for () { | |
| type Item<'a> = (); | |
| fn next<'a>(&self) -> () {} | |
| } | |
| pub struct Infinite<T>(T); | |
| //@ has foo/trait.LendingIterator.html | |
| //@ has - '//*[@id="associatedtype.Item-2"]//h4[@class="code-header"]' "type Item<'a> = &'a T where Self: 'a" | |
| impl<T> LendingIterator for Infinite<T> { | |
| type Item<'a> = &'a T where Self: 'a; | |
| fn next<'a>(&'a self) -> Self::Item<'a> { | |
| &self.0 | |
| } | |
| } |