std.algorithm.searching.Until/until  - multiple declarations
				Function until
Lazily iterates range until the element e for which
pred(e, sentinel) is true.
						
					
				This is similar to takeWhile in other languages.
Parameters
| Name | Description | 
|---|---|
| pred | Predicate to determine when to stop. | 
| range | The input range to iterate over. | 
| sentinel | The element to stop at. | 
| openRight | Determines whether the element for which the given predicate is
        true should be included in the resulting range ( No), or
        not (Yes). | 
Returns
An input range that iterates over the original range's elements, but ends when the specified predicate becomes true. If the original range is a forward range or higher, this range will be a forward range.
Example
import stdStruct Until
Lazily iterates range until the element e for which
pred(e, sentinel) is true.
						
				struct Until(alias pred, Range, Sentinel)
				
				  
				
				if (isInputRange!Range);
						
					
				This is similar to takeWhile in other languages.
Constructors
| Name | Description | 
|---|---|
| this(input, sentinel, openRight) | 
Properties
| Name | Type | Description | 
|---|---|---|
| empty[get] | bool | |
| front[get] | auto | |
| save[get] | Until | 
Methods
| Name | Description | 
|---|---|
| popFront() | 
Parameters
| Name | Description | 
|---|---|
| pred | Predicate to determine when to stop. | 
| range | The input range to iterate over. | 
| sentinel | The element to stop at. | 
| openRight | Determines whether the element for which the given predicate is
        true should be included in the resulting range ( No), or
        not (Yes). | 
Returns
An input range that iterates over the original range's elements, but ends when the specified predicate becomes true. If the original range is a forward range or higher, this range will be a forward range.
Example
import std