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
Namespace: Pidgin
Assembly: Pidgin.dll
Syntax
public class Result<TToken, T> : object
Type Parameters
Name | Description |
---|---|
TToken | |
T |
Properties
| Improve this Doc View SourceError
The parse error
Declaration
public ParseError<TToken> Error { get; }
Property Value
Type | Description |
---|---|
ParseError<TToken> | The parse error |
Success
Did the parse succeed?
Declaration
public bool Success { get; }
Property Value
Type | Description |
---|---|
Boolean | 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 |
Methods
| Improve this Doc View SourceCast<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 |
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(Func<Result<TToken, T>>)
Choose the first successful result
Declaration
public Result<TToken, T> Or(Func<Result<TToken, T>> result)
Parameters
Type | Name | Description |
---|---|---|
Func<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 the result of calling |
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 |
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 |
---|---|---|
Func<T, Result<TToken, U>> | 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 |
---|---|---|
Func<T, Result<TToken, U>> | 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 |