Class Result<TToken, T>
Represents the result of parsing. A parse result may be successful (Success == true), in which case it contains a value, or it may be a failure, in which case it contains an error
Inheritance
- Object
- Result<TToken, T>
Declaration
public class Result<TToken, T> : Object
Type Parameters
Name | Description |
---|---|
TToken |
|
T |
Properties
Error
The parse error
Declaration
public ParseError<TToken> Error { get; }
Property Value
Type | Description |
---|---|
ParseError<TToken> |
The parse error |
Exceptions
Type | Condition |
---|---|
Thrown when the result was a successful one |
Success
Did the parse succeed?
Declaration
public bool Success { get; }
Property Value
Type | Description |
---|---|
A value indicating whether the parse was successful |
Value
The parser's return value
Declaration
public T Value { get; }
Property Value
Type | Description |
---|---|
T |
The parser's return value |
Exceptions
Type | Condition |
---|---|
Thrown when the result was not a successful one |
Methods
Cast<U>()
Cast the value contained in the result to the specified output type
Declaration
public Result<TToken, U> Cast<U>()
Returns
Type | Description |
---|---|
Result<TToken, U> |
A result containing this result's value casted to |
Type Parameters
Name | Description |
---|---|
U |
The type to cast the contained value to |
Exceptions
Type | Condition |
---|---|
Thrown when the contained value is not an instance of |
GetValueOrDefault()
Get the value, or return a default value.
Declaration
public T GetValueOrDefault()
Returns
Type | Description |
---|---|
T |
The value if Success is true, or a default value. |
GetValueOrDefault(T)
Get the value, or return the specified default value.
Declaration
public T GetValueOrDefault(T default)
Parameters
Type | Name | Description |
---|---|---|
T |
default |
Returns
Type | Description |
---|---|
T |
The value if Success is true, or the specified default value. |
GetValueOrDefault(Func<T>)
Get the value, or return the result of calling the specified function.
Declaration
public T GetValueOrDefault(Func<T> value)
Parameters
Type | Name | Description |
---|---|---|
Func<T> |
value |
Returns
Type | Description |
---|---|
T |
The value if Success is true, or the result of calling the specified function. |
Match<U>(Func<T, U>, Func<ParseError<TToken>, U>)
Tear down this parse result using a function for the two possible outcomes.
If Success == true, success
will be called. Otherwise, failure
will be called.
Declaration
public U Match<U>(Func<T, U> success, Func<ParseError<TToken>, U> failure)
Parameters
Type | Name | Description |
---|---|---|
Func<T, U> |
success |
Called when the result has a value |
Func<ParseError<TToken>, U> |
failure |
Called when the result does not have a value |
Returns
Type | Description |
---|---|
U |
The result of calling the |
Type Parameters
Name | Description |
---|---|
U |
The return type |
Or(Result<TToken, T>)
Choose the first successful result
Declaration
public Result<TToken, T> Or(Result<TToken, T> result)
Parameters
Type | Name | Description |
---|---|---|
Result<TToken, T> |
result |
A fallback result if this one has an error |
Returns
Type | Description |
---|---|
Result<TToken, T> |
This result, if Success == true, or |
Or(Func<Result<TToken, T>>)
Choose the first successful result
Declaration
public Result<TToken, T> Or(Func<Result<TToken, T>> result)
Parameters
Type | Name | Description |
---|---|---|
result |
A fallback result if this one has an error |
Returns
Type | Description |
---|---|
Result<TToken, T> |
This result, if Success == true, or the result of calling |
Select<U>(Func<T, U>)
Project the value contained in the result
Declaration
public Result<TToken, U> Select<U>(Func<T, U> selector)
Parameters
Type | Name | Description |
---|---|---|
Func<T, U> |
selector |
A transformation function to apply to the contained value |
Returns
Type | Description |
---|---|
Result<TToken, U> |
The result of applying the transformation function to the contained value |
Type Parameters
Name | Description |
---|---|
U |
The type of the resulting value |
SelectMany<U>(Func<T, Result<TToken, U>>)
Projects the value of the result into a result, and flattens the resulting value into a single result.
Declaration
public Result<TToken, U> SelectMany<U>(Func<T, Result<TToken, U>> selector)
Parameters
Type | Name | Description |
---|---|---|
selector |
A transformation function to apply to the contained value |
Returns
Type | Description |
---|---|
Result<TToken, U> |
The final result |
Type Parameters
Name | Description |
---|---|
U |
The type of the resulting possibly-absent value |
SelectMany<U, R>(Func<T, Result<TToken, U>>, Func<T, U, R>)
Projects the value of the result into a result, and flattens the resulting value into a single result, applying a result selector function to the two values.
Declaration
public Result<TToken, R> SelectMany<U, R>(Func<T, Result<TToken, U>> selector, Func<T, U, R> result)
Parameters
Type | Name | Description |
---|---|---|
selector |
A transformation function to apply to the contained value |
|
Func<T, U, R> |
result |
A transformation function to apply to the contained value and the value contained in the selected Maybe<T> |
Returns
Type | Description |
---|---|
Result<TToken, R> |
The result of applying |
Type Parameters
Name | Description |
---|---|
U |
The type of the value to select |
R |
The type of the resulting possibly-absent value |