// Copyright 2005-2015 Giacomo Stelluti Scala & Contributors. All rights reserved. See License.md in the project root for license information.
using System;
using System.Collections.Generic;
namespace CommandLine
{
///
/// Provides convenience extension methods for .
///
public static partial class ParserResultExtensions
{
///
/// Executes if contains
/// parsed values.
///
/// Type of the target instance built with parsed value.
/// An instance.
/// The to execute.
/// The same instance.
public static ParserResult WithParsed(this ParserResult result, Action action)
{
var parsed = result as Parsed;
if (parsed != null)
{
action(parsed.Value);
}
return result;
}
///
/// Executes if parsed values are of .
///
/// Type of the target instance built with parsed value.
/// An verb result instance.
/// The to execute.
/// The same instance.
public static ParserResult WithParsed(this ParserResult result, Action action)
{
var parsed = result as Parsed;
if (parsed != null)
{
if (parsed.Value is T)
{
action((T)parsed.Value);
}
}
return result;
}
///
/// Executes if lacks
/// parsed values and contains errors.
///
/// Type of the target instance built with parsed value.
/// An instance.
/// The delegate to execute.
/// The same instance.
public static ParserResult WithNotParsed(this ParserResult result, Action> action)
{
var notParsed = result as NotParsed;
if (notParsed != null)
{
action(notParsed.Errors);
}
return result;
}
///
/// Provides a way to transform result data into another value.
///
/// Type of the target instance built with parsed value.
/// The type of the new value.
/// An instance.
/// Lambda executed on successful parsing.
/// Lambda executed on failed parsing.
/// The new value.
public static TResult MapResult(this ParserResult result,
Func parsedFunc,
Func, TResult> notParsedFunc)
{
var parsed = result as Parsed;
if (parsed != null)
{
return parsedFunc(parsed.Value);
}
return notParsedFunc(((NotParsed)result).Errors);
}
///
/// Provides a way to transform result data into another value.
///
/// First verb type.
///
/// The result in verb scenario.
/// Lambda executed on successful parsing of .
/// Lambda executed on failed parsing.
/// The new value.
public static TResult MapResult(this ParserResult result,
Func parsedFunc1,
Func, TResult> notParsedFunc)
{
var parsed = result as Parsed;
if (parsed != null)
{
if (parsed.Value is T1)
{
return parsedFunc1((T1)parsed.Value);
}
throw new InvalidOperationException();
}
return notParsedFunc(((NotParsed)result).Errors);
}
///
/// Provides a way to transform result data into another value.
///
/// First verb type.
/// Second verb type.
///
/// The result in verb scenario.
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on failed parsing.
/// The new value.
public static TResult MapResult(this ParserResult result,
Func parsedFunc1,
Func parsedFunc2,
Func, TResult> notParsedFunc)
{
var parsed = result as Parsed;
if (parsed != null)
{
if (parsed.Value is T1)
{
return parsedFunc1((T1)parsed.Value);
}
if (parsed.Value is T2)
{
return parsedFunc2((T2)parsed.Value);
}
throw new InvalidOperationException();
}
return notParsedFunc(((NotParsed)result).Errors);
}
///
/// Provides a way to transform result data into another value.
///
/// First verb type.
/// Second verb type.
/// Third verb type.
///
/// The result in verb scenario.
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on failed parsing.
/// The new value.
public static TResult MapResult(this ParserResult result,
Func parsedFunc1,
Func parsedFunc2,
Func parsedFunc3,
Func, TResult> notParsedFunc)
{
var parsed = result as Parsed;
if (parsed != null)
{
if (parsed.Value is T1)
{
return parsedFunc1((T1)parsed.Value);
}
if (parsed.Value is T2)
{
return parsedFunc2((T2)parsed.Value);
}
if (parsed.Value is T3)
{
return parsedFunc3((T3)parsed.Value);
}
throw new InvalidOperationException();
}
return notParsedFunc(((NotParsed)result).Errors);
}
///
/// Provides a way to transform result data into another value.
///
/// First verb type.
/// Second verb type.
/// Third verb type.
/// Fourth verb type.
///
/// The result in verb scenario.
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on failed parsing.
/// The new value.
public static TResult MapResult(this ParserResult result,
Func parsedFunc1,
Func parsedFunc2,
Func parsedFunc3,
Func parsedFunc4,
Func, TResult> notParsedFunc)
{
var parsed = result as Parsed;
if (parsed != null)
{
if (parsed.Value is T1)
{
return parsedFunc1((T1)parsed.Value);
}
if (parsed.Value is T2)
{
return parsedFunc2((T2)parsed.Value);
}
if (parsed.Value is T3)
{
return parsedFunc3((T3)parsed.Value);
}
if (parsed.Value is T4)
{
return parsedFunc4((T4)parsed.Value);
}
throw new InvalidOperationException();
}
return notParsedFunc(((NotParsed)result).Errors);
}
///
/// Provides a way to transform result data into another value.
///
/// First verb type.
/// Second verb type.
/// Third verb type.
/// Fourth verb type.
/// Fifth verb type.
///
/// The result in verb scenario.
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on failed parsing.
/// The new value.
public static TResult MapResult(this ParserResult result,
Func parsedFunc1,
Func parsedFunc2,
Func parsedFunc3,
Func parsedFunc4,
Func parsedFunc5,
Func, TResult> notParsedFunc)
{
var parsed = result as Parsed;
if (parsed != null)
{
if (parsed.Value is T1)
{
return parsedFunc1((T1)parsed.Value);
}
if (parsed.Value is T2)
{
return parsedFunc2((T2)parsed.Value);
}
if (parsed.Value is T3)
{
return parsedFunc3((T3)parsed.Value);
}
if (parsed.Value is T4)
{
return parsedFunc4((T4)parsed.Value);
}
if (parsed.Value is T5)
{
return parsedFunc5((T5)parsed.Value);
}
throw new InvalidOperationException();
}
return notParsedFunc(((NotParsed)result).Errors);
}
///
/// Provides a way to transform result data into another value.
///
/// First verb type.
/// Second verb type.
/// Third verb type.
/// Fourth verb type.
/// Fifth verb type.
/// Sixth verb type.
///
/// The result in verb scenario.
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on failed parsing.
/// The new value.
public static TResult MapResult(this ParserResult result,
Func parsedFunc1,
Func parsedFunc2,
Func parsedFunc3,
Func parsedFunc4,
Func parsedFunc5,
Func parsedFunc6,
Func, TResult> notParsedFunc)
{
var parsed = result as Parsed;
if (parsed != null)
{
if (parsed.Value is T1)
{
return parsedFunc1((T1)parsed.Value);
}
if (parsed.Value is T2)
{
return parsedFunc2((T2)parsed.Value);
}
if (parsed.Value is T3)
{
return parsedFunc3((T3)parsed.Value);
}
if (parsed.Value is T4)
{
return parsedFunc4((T4)parsed.Value);
}
if (parsed.Value is T5)
{
return parsedFunc5((T5)parsed.Value);
}
if (parsed.Value is T6)
{
return parsedFunc6((T6)parsed.Value);
}
throw new InvalidOperationException();
}
return notParsedFunc(((NotParsed)result).Errors);
}
///
/// Provides a way to transform result data into another value.
///
/// First verb type.
/// Second verb type.
/// Third verb type.
/// Fourth verb type.
/// Fifth verb type.
/// Sixth verb type.
/// Seventh verb type.
///
/// The result in verb scenario.
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on failed parsing.
/// The new value.
public static TResult MapResult(this ParserResult result,
Func parsedFunc1,
Func parsedFunc2,
Func parsedFunc3,
Func parsedFunc4,
Func parsedFunc5,
Func parsedFunc6,
Func parsedFunc7,
Func, TResult> notParsedFunc)
{
var parsed = result as Parsed;
if (parsed != null)
{
if (parsed.Value is T1)
{
return parsedFunc1((T1)parsed.Value);
}
if (parsed.Value is T2)
{
return parsedFunc2((T2)parsed.Value);
}
if (parsed.Value is T3)
{
return parsedFunc3((T3)parsed.Value);
}
if (parsed.Value is T4)
{
return parsedFunc4((T4)parsed.Value);
}
if (parsed.Value is T5)
{
return parsedFunc5((T5)parsed.Value);
}
if (parsed.Value is T6)
{
return parsedFunc6((T6)parsed.Value);
}
if (parsed.Value is T7)
{
return parsedFunc7((T7)parsed.Value);
}
throw new InvalidOperationException();
}
return notParsedFunc(((NotParsed)result).Errors);
}
///
/// Provides a way to transform result data into another value.
///
/// First verb type.
/// Second verb type.
/// Third verb type.
/// Fourth verb type.
/// Fifth verb type.
/// Sixth verb type.
/// Seventh verb type.
/// Eighth verb type.
///
/// The result in verb scenario.
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on failed parsing.
/// The new value.
public static TResult MapResult(this ParserResult result,
Func parsedFunc1,
Func parsedFunc2,
Func parsedFunc3,
Func parsedFunc4,
Func parsedFunc5,
Func parsedFunc6,
Func parsedFunc7,
Func parsedFunc8,
Func, TResult> notParsedFunc)
{
var parsed = result as Parsed;
if (parsed != null)
{
if (parsed.Value is T1)
{
return parsedFunc1((T1)parsed.Value);
}
if (parsed.Value is T2)
{
return parsedFunc2((T2)parsed.Value);
}
if (parsed.Value is T3)
{
return parsedFunc3((T3)parsed.Value);
}
if (parsed.Value is T4)
{
return parsedFunc4((T4)parsed.Value);
}
if (parsed.Value is T5)
{
return parsedFunc5((T5)parsed.Value);
}
if (parsed.Value is T6)
{
return parsedFunc6((T6)parsed.Value);
}
if (parsed.Value is T7)
{
return parsedFunc7((T7)parsed.Value);
}
if (parsed.Value is T8)
{
return parsedFunc8((T8)parsed.Value);
}
throw new InvalidOperationException();
}
return notParsedFunc(((NotParsed)result).Errors);
}
///
/// Provides a way to transform result data into another value.
///
/// First verb type.
/// Second verb type.
/// Third verb type.
/// Fourth verb type.
/// Fifth verb type.
/// Sixth verb type.
/// Seventh verb type.
/// Eighth verb type.
/// Ninth verb type.
///
/// The result in verb scenario.
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on failed parsing.
/// The new value.
public static TResult MapResult(this ParserResult result,
Func parsedFunc1,
Func parsedFunc2,
Func parsedFunc3,
Func parsedFunc4,
Func parsedFunc5,
Func parsedFunc6,
Func parsedFunc7,
Func parsedFunc8,
Func parsedFunc9,
Func, TResult> notParsedFunc)
{
var parsed = result as Parsed;
if (parsed != null)
{
if (parsed.Value is T1)
{
return parsedFunc1((T1)parsed.Value);
}
if (parsed.Value is T2)
{
return parsedFunc2((T2)parsed.Value);
}
if (parsed.Value is T3)
{
return parsedFunc3((T3)parsed.Value);
}
if (parsed.Value is T4)
{
return parsedFunc4((T4)parsed.Value);
}
if (parsed.Value is T5)
{
return parsedFunc5((T5)parsed.Value);
}
if (parsed.Value is T6)
{
return parsedFunc6((T6)parsed.Value);
}
if (parsed.Value is T7)
{
return parsedFunc7((T7)parsed.Value);
}
if (parsed.Value is T8)
{
return parsedFunc8((T8)parsed.Value);
}
if (parsed.Value is T9)
{
return parsedFunc9((T9)parsed.Value);
}
throw new InvalidOperationException();
}
return notParsedFunc(((NotParsed)result).Errors);
}
///
/// Provides a way to transform result data into another value.
///
/// First verb type.
/// Second verb type.
/// Third verb type.
/// Fourth verb type.
/// Fifth verb type.
/// Sixth verb type.
/// Seventh verb type.
/// Eighth verb type.
/// Ninth verb type.
/// Tenth verb type.
///
/// The result in verb scenario.
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on failed parsing.
/// The new value.
public static TResult MapResult(this ParserResult result,
Func parsedFunc1,
Func parsedFunc2,
Func parsedFunc3,
Func parsedFunc4,
Func parsedFunc5,
Func parsedFunc6,
Func parsedFunc7,
Func parsedFunc8,
Func parsedFunc9,
Func parsedFunc10,
Func, TResult> notParsedFunc)
{
var parsed = result as Parsed;
if (parsed != null)
{
if (parsed.Value is T1)
{
return parsedFunc1((T1)parsed.Value);
}
if (parsed.Value is T2)
{
return parsedFunc2((T2)parsed.Value);
}
if (parsed.Value is T3)
{
return parsedFunc3((T3)parsed.Value);
}
if (parsed.Value is T4)
{
return parsedFunc4((T4)parsed.Value);
}
if (parsed.Value is T5)
{
return parsedFunc5((T5)parsed.Value);
}
if (parsed.Value is T6)
{
return parsedFunc6((T6)parsed.Value);
}
if (parsed.Value is T7)
{
return parsedFunc7((T7)parsed.Value);
}
if (parsed.Value is T8)
{
return parsedFunc8((T8)parsed.Value);
}
if (parsed.Value is T9)
{
return parsedFunc9((T9)parsed.Value);
}
if (parsed.Value is T10)
{
return parsedFunc10((T10)parsed.Value);
}
throw new InvalidOperationException();
}
return notParsedFunc(((NotParsed)result).Errors);
}
///
/// Provides a way to transform result data into another value.
///
/// First verb type.
/// Second verb type.
/// Third verb type.
/// Fourth verb type.
/// Fifth verb type.
/// Sixth verb type.
/// Seventh verb type.
/// Eighth verb type.
/// Ninth verb type.
/// Tenth verb type.
/// Eleventh verb type.
///
/// The result in verb scenario.
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on failed parsing.
/// The new value.
public static TResult MapResult(this ParserResult result,
Func parsedFunc1,
Func parsedFunc2,
Func parsedFunc3,
Func parsedFunc4,
Func parsedFunc5,
Func parsedFunc6,
Func parsedFunc7,
Func parsedFunc8,
Func parsedFunc9,
Func parsedFunc10,
Func parsedFunc11,
Func, TResult> notParsedFunc)
{
var parsed = result as Parsed;
if (parsed != null)
{
if (parsed.Value is T1)
{
return parsedFunc1((T1)parsed.Value);
}
if (parsed.Value is T2)
{
return parsedFunc2((T2)parsed.Value);
}
if (parsed.Value is T3)
{
return parsedFunc3((T3)parsed.Value);
}
if (parsed.Value is T4)
{
return parsedFunc4((T4)parsed.Value);
}
if (parsed.Value is T5)
{
return parsedFunc5((T5)parsed.Value);
}
if (parsed.Value is T6)
{
return parsedFunc6((T6)parsed.Value);
}
if (parsed.Value is T7)
{
return parsedFunc7((T7)parsed.Value);
}
if (parsed.Value is T8)
{
return parsedFunc8((T8)parsed.Value);
}
if (parsed.Value is T9)
{
return parsedFunc9((T9)parsed.Value);
}
if (parsed.Value is T10)
{
return parsedFunc10((T10)parsed.Value);
}
if (parsed.Value is T11)
{
return parsedFunc11((T11)parsed.Value);
}
throw new InvalidOperationException();
}
return notParsedFunc(((NotParsed)result).Errors);
}
///
/// Provides a way to transform result data into another value.
///
/// First verb type.
/// Second verb type.
/// Third verb type.
/// Fourth verb type.
/// Fifth verb type.
/// Sixth verb type.
/// Seventh verb type.
/// Eighth verb type.
/// Ninth verb type.
/// Tenth verb type.
/// Eleventh verb type.
/// Twelfth verb type.
///
/// The result in verb scenario.
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on failed parsing.
/// The new value.
public static TResult MapResult(this ParserResult result,
Func parsedFunc1,
Func parsedFunc2,
Func parsedFunc3,
Func parsedFunc4,
Func parsedFunc5,
Func parsedFunc6,
Func parsedFunc7,
Func parsedFunc8,
Func parsedFunc9,
Func parsedFunc10,
Func parsedFunc11,
Func parsedFunc12,
Func, TResult> notParsedFunc)
{
var parsed = result as Parsed;
if (parsed != null)
{
if (parsed.Value is T1)
{
return parsedFunc1((T1)parsed.Value);
}
if (parsed.Value is T2)
{
return parsedFunc2((T2)parsed.Value);
}
if (parsed.Value is T3)
{
return parsedFunc3((T3)parsed.Value);
}
if (parsed.Value is T4)
{
return parsedFunc4((T4)parsed.Value);
}
if (parsed.Value is T5)
{
return parsedFunc5((T5)parsed.Value);
}
if (parsed.Value is T6)
{
return parsedFunc6((T6)parsed.Value);
}
if (parsed.Value is T7)
{
return parsedFunc7((T7)parsed.Value);
}
if (parsed.Value is T8)
{
return parsedFunc8((T8)parsed.Value);
}
if (parsed.Value is T9)
{
return parsedFunc9((T9)parsed.Value);
}
if (parsed.Value is T10)
{
return parsedFunc10((T10)parsed.Value);
}
if (parsed.Value is T11)
{
return parsedFunc11((T11)parsed.Value);
}
if (parsed.Value is T12)
{
return parsedFunc12((T12)parsed.Value);
}
throw new InvalidOperationException();
}
return notParsedFunc(((NotParsed)result).Errors);
}
///
/// Provides a way to transform result data into another value.
///
/// First verb type.
/// Second verb type.
/// Third verb type.
/// Fourth verb type.
/// Fifth verb type.
/// Sixth verb type.
/// Seventh verb type.
/// Eighth verb type.
/// Ninth verb type.
/// Tenth verb type.
/// Eleventh verb type.
/// Twelfth verb type.
/// Thirteenth verb type.
///
/// The result in verb scenario.
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on failed parsing.
/// The new value.
public static TResult MapResult(this ParserResult result,
Func parsedFunc1,
Func parsedFunc2,
Func parsedFunc3,
Func parsedFunc4,
Func parsedFunc5,
Func parsedFunc6,
Func parsedFunc7,
Func parsedFunc8,
Func parsedFunc9,
Func parsedFunc10,
Func parsedFunc11,
Func parsedFunc12,
Func parsedFunc13,
Func, TResult> notParsedFunc)
{
var parsed = result as Parsed;
if (parsed != null)
{
if (parsed.Value is T1)
{
return parsedFunc1((T1)parsed.Value);
}
if (parsed.Value is T2)
{
return parsedFunc2((T2)parsed.Value);
}
if (parsed.Value is T3)
{
return parsedFunc3((T3)parsed.Value);
}
if (parsed.Value is T4)
{
return parsedFunc4((T4)parsed.Value);
}
if (parsed.Value is T5)
{
return parsedFunc5((T5)parsed.Value);
}
if (parsed.Value is T6)
{
return parsedFunc6((T6)parsed.Value);
}
if (parsed.Value is T7)
{
return parsedFunc7((T7)parsed.Value);
}
if (parsed.Value is T8)
{
return parsedFunc8((T8)parsed.Value);
}
if (parsed.Value is T9)
{
return parsedFunc9((T9)parsed.Value);
}
if (parsed.Value is T10)
{
return parsedFunc10((T10)parsed.Value);
}
if (parsed.Value is T11)
{
return parsedFunc11((T11)parsed.Value);
}
if (parsed.Value is T12)
{
return parsedFunc12((T12)parsed.Value);
}
if (parsed.Value is T13)
{
return parsedFunc13((T13)parsed.Value);
}
throw new InvalidOperationException();
}
return notParsedFunc(((NotParsed)result).Errors);
}
///
/// Provides a way to transform result data into another value.
///
/// First verb type.
/// Second verb type.
/// Third verb type.
/// Fourth verb type.
/// Fifth verb type.
/// Sixth verb type.
/// Seventh verb type.
/// Eighth verb type.
/// Ninth verb type.
/// Tenth verb type.
/// Eleventh verb type.
/// Twelfth verb type.
/// Thirteenth verb type.
/// Fourteenth verb type.
///
/// The result in verb scenario.
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on failed parsing.
/// The new value.
public static TResult MapResult(this ParserResult result,
Func parsedFunc1,
Func parsedFunc2,
Func parsedFunc3,
Func parsedFunc4,
Func parsedFunc5,
Func parsedFunc6,
Func parsedFunc7,
Func parsedFunc8,
Func parsedFunc9,
Func parsedFunc10,
Func parsedFunc11,
Func parsedFunc12,
Func parsedFunc13,
Func parsedFunc14,
Func, TResult> notParsedFunc)
{
var parsed = result as Parsed;
if (parsed != null)
{
if (parsed.Value is T1)
{
return parsedFunc1((T1)parsed.Value);
}
if (parsed.Value is T2)
{
return parsedFunc2((T2)parsed.Value);
}
if (parsed.Value is T3)
{
return parsedFunc3((T3)parsed.Value);
}
if (parsed.Value is T4)
{
return parsedFunc4((T4)parsed.Value);
}
if (parsed.Value is T5)
{
return parsedFunc5((T5)parsed.Value);
}
if (parsed.Value is T6)
{
return parsedFunc6((T6)parsed.Value);
}
if (parsed.Value is T7)
{
return parsedFunc7((T7)parsed.Value);
}
if (parsed.Value is T8)
{
return parsedFunc8((T8)parsed.Value);
}
if (parsed.Value is T9)
{
return parsedFunc9((T9)parsed.Value);
}
if (parsed.Value is T10)
{
return parsedFunc10((T10)parsed.Value);
}
if (parsed.Value is T11)
{
return parsedFunc11((T11)parsed.Value);
}
if (parsed.Value is T12)
{
return parsedFunc12((T12)parsed.Value);
}
if (parsed.Value is T13)
{
return parsedFunc13((T13)parsed.Value);
}
if (parsed.Value is T14)
{
return parsedFunc14((T14)parsed.Value);
}
throw new InvalidOperationException();
}
return notParsedFunc(((NotParsed)result).Errors);
}
///
/// Provides a way to transform result data into another value.
///
/// First verb type.
/// Second verb type.
/// Third verb type.
/// Fourth verb type.
/// Fifth verb type.
/// Sixth verb type.
/// Seventh verb type.
/// Eighth verb type.
/// Ninth verb type.
/// Tenth verb type.
/// Eleventh verb type.
/// Twelfth verb type.
/// Thirteenth verb type.
/// Fourteenth verb type.
/// Fifteenth verb type.
///
/// The result in verb scenario.
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on failed parsing.
/// The new value.
public static TResult MapResult(this ParserResult result,
Func parsedFunc1,
Func parsedFunc2,
Func parsedFunc3,
Func parsedFunc4,
Func parsedFunc5,
Func parsedFunc6,
Func parsedFunc7,
Func parsedFunc8,
Func parsedFunc9,
Func parsedFunc10,
Func parsedFunc11,
Func parsedFunc12,
Func parsedFunc13,
Func parsedFunc14,
Func parsedFunc15,
Func, TResult> notParsedFunc)
{
var parsed = result as Parsed;
if (parsed != null)
{
if (parsed.Value is T1)
{
return parsedFunc1((T1)parsed.Value);
}
if (parsed.Value is T2)
{
return parsedFunc2((T2)parsed.Value);
}
if (parsed.Value is T3)
{
return parsedFunc3((T3)parsed.Value);
}
if (parsed.Value is T4)
{
return parsedFunc4((T4)parsed.Value);
}
if (parsed.Value is T5)
{
return parsedFunc5((T5)parsed.Value);
}
if (parsed.Value is T6)
{
return parsedFunc6((T6)parsed.Value);
}
if (parsed.Value is T7)
{
return parsedFunc7((T7)parsed.Value);
}
if (parsed.Value is T8)
{
return parsedFunc8((T8)parsed.Value);
}
if (parsed.Value is T9)
{
return parsedFunc9((T9)parsed.Value);
}
if (parsed.Value is T10)
{
return parsedFunc10((T10)parsed.Value);
}
if (parsed.Value is T11)
{
return parsedFunc11((T11)parsed.Value);
}
if (parsed.Value is T12)
{
return parsedFunc12((T12)parsed.Value);
}
if (parsed.Value is T13)
{
return parsedFunc13((T13)parsed.Value);
}
if (parsed.Value is T14)
{
return parsedFunc14((T14)parsed.Value);
}
if (parsed.Value is T15)
{
return parsedFunc15((T15)parsed.Value);
}
throw new InvalidOperationException();
}
return notParsedFunc(((NotParsed)result).Errors);
}
///
/// Provides a way to transform result data into another value.
///
/// First verb type.
/// Second verb type.
/// Third verb type.
/// Fourth verb type.
/// Fifth verb type.
/// Sixth verb type.
/// Seventh verb type.
/// Eighth verb type.
/// Ninth verb type.
/// Tenth verb type.
/// Eleventh verb type.
/// Twelfth verb type.
/// Thirteenth verb type.
/// Fourteenth verb type.
/// Fifteenth verb type.
/// Sixteenth verb type.
///
/// The result in verb scenario.
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on successful parsing of .
/// Lambda executed on failed parsing.
/// The new value.
public static TResult MapResult(this ParserResult result,
Func parsedFunc1,
Func parsedFunc2,
Func parsedFunc3,
Func parsedFunc4,
Func parsedFunc5,
Func parsedFunc6,
Func parsedFunc7,
Func parsedFunc8,
Func parsedFunc9,
Func parsedFunc10,
Func parsedFunc11,
Func parsedFunc12,
Func parsedFunc13,
Func parsedFunc14,
Func parsedFunc15,
Func parsedFunc16,
Func, TResult> notParsedFunc)
{
var parsed = result as Parsed;
if (parsed != null)
{
if (parsed.Value is T1)
{
return parsedFunc1((T1)parsed.Value);
}
if (parsed.Value is T2)
{
return parsedFunc2((T2)parsed.Value);
}
if (parsed.Value is T3)
{
return parsedFunc3((T3)parsed.Value);
}
if (parsed.Value is T4)
{
return parsedFunc4((T4)parsed.Value);
}
if (parsed.Value is T5)
{
return parsedFunc5((T5)parsed.Value);
}
if (parsed.Value is T6)
{
return parsedFunc6((T6)parsed.Value);
}
if (parsed.Value is T7)
{
return parsedFunc7((T7)parsed.Value);
}
if (parsed.Value is T8)
{
return parsedFunc8((T8)parsed.Value);
}
if (parsed.Value is T9)
{
return parsedFunc9((T9)parsed.Value);
}
if (parsed.Value is T10)
{
return parsedFunc10((T10)parsed.Value);
}
if (parsed.Value is T11)
{
return parsedFunc11((T11)parsed.Value);
}
if (parsed.Value is T12)
{
return parsedFunc12((T12)parsed.Value);
}
if (parsed.Value is T13)
{
return parsedFunc13((T13)parsed.Value);
}
if (parsed.Value is T14)
{
return parsedFunc14((T14)parsed.Value);
}
if (parsed.Value is T15)
{
return parsedFunc15((T15)parsed.Value);
}
if (parsed.Value is T16)
{
return parsedFunc16((T16)parsed.Value);
}
throw new InvalidOperationException();
}
return notParsedFunc(((NotParsed)result).Errors);
}
}
}