| 108 where |
108 where |
| 109 D: Decomposition<X>, |
109 D: Decomposition<X>, |
| 110 { |
110 { |
| 111 /// Decomposes self according to `decomposer`, and evaluate `f` on the result. |
111 /// Decomposes self according to `decomposer`, and evaluate `f` on the result. |
| 112 /// Consumes self. |
112 /// Consumes self. |
| 113 fn eval_decompose<'b, R>(self, f: impl FnOnce(D::Decomposition<'b>) -> R) -> R |
113 fn eval_decompose<'c, R>(self, f: impl FnOnce(D::Decomposition<'c>) -> R) -> R |
| 114 where |
114 where |
| 115 R: 'b, |
115 X: 'c; |
| 116 X: 'b, |
|
| 117 Self: 'b; |
|
| 118 |
116 |
| 119 /// Does a light decomposition of self `decomposer`, and evaluates `f` on the result. |
117 /// Does a light decomposition of self `decomposer`, and evaluates `f` on the result. |
| 120 /// Does not consume self. |
118 /// Does not consume self. |
| 121 fn eval_ref_decompose<'b, 'c, R, F>(&'b self, f: F) -> R |
119 fn eval_ref_decompose<'c, R>(&self, f: impl FnOnce(D::Reference<'c>) -> R) -> R |
| 122 where |
120 where |
| 123 X: 'c, |
121 X: 'c; |
| 124 Self: 'b, |
|
| 125 R: 'b, |
|
| 126 F: FnOnce(D::Reference<'c>) -> R; |
|
| 127 |
122 |
| 128 /// Returns an owned instance of `X`, cloning or converting non-true instances when necessary. |
123 /// Returns an owned instance of `X`, cloning or converting non-true instances when necessary. |
| 129 fn own(self) -> X; |
124 fn own(self) -> X; |
| 130 |
125 |
| 131 // ************** automatically implemented methods below from here ************** |
126 // ************** automatically implemented methods below from here ************** |