| 136 | // Helper for repeated field evolving to `T1` from `T2`. |
| 137 | template <typename T1, typename T2> |
| 138 | RepeatedPtrField<T1> evolve(RepeatedPtrField<T2> from) |
| 139 | { |
| 140 | RepeatedPtrField<T1> to; |
| 141 | foreach (const T2& value, from) { |
| 142 | *to.Add() = evolve(value); |
| 143 | } |
| 144 | |
| 145 | return to; |
| 146 | } |
| 147 | |
| 148 | |
| 149 | VolumeCapability::BlockVolume evolve( |