public void Match() { var a = FSharpChoice <int, string> .NewChoice1Of2(1); var c = a.Match(i => 0, _ => 1); Assert.AreEqual(0, c); }
private void SaveAndClose(bool isNewName) { if (isNewName) { Name = FSharpChoice <string, string> .NewChoice1Of2(SaveWithNewName); } else { Name = FSharpChoice <string, string> .NewChoice2Of2(RewriteExistScheduleName); } }
public static FSharpChoice <TR1, TR2> Transform <T1, T2, TR1, TR2>(this FSharpChoice <T1, T2> choice, Func <T1, TR1> func1, Func <T2, TR2> func2) { switch (choice.Tag) { case FSharpChoice <T1, T2> .Tags.Choice1Of2: return(FSharpChoice <TR1, TR2> .NewChoice1Of2(func1((choice.CastTo <FSharpChoice <T1, T2> .Choice1Of2>()).Item))); case FSharpChoice <T1, T2> .Tags.Choice2Of2: return(FSharpChoice <TR1, TR2> .NewChoice2Of2(func2((choice.CastTo <FSharpChoice <T1, T2> .Choice2Of2>()).Item))); } throw new InvalidOperationException(); }
public void New() { var a = FSharpChoice.New1Of2 <int, string>(1); var b = FSharpChoice <int, string> .NewChoice1Of2(1); Assert.AreEqual(a, b); var c = FSharpChoice.New2Of2 <int, string>("a"); var d = FSharpChoice <int, string> .NewChoice2Of2("a"); Assert.AreEqual(c, d); }
private DiagramItem Transform(ANTLRv4Parser.LexerAltContext context) { var lexerElements = context.lexerElements().lexerElement().Select(Transform).Select(FSharpChoice <DiagramItem, string> .NewChoice1Of2); if (context.lexerCommands() != null) { return(new Sequence(lexerElements.Concat(new[] { FSharpChoice <DiagramItem, string> .NewChoice1Of2(TerminalWithClass("->", "rightArrows")) }) .Concat(context.lexerCommands() .lexerCommand() .Select(x => TerminalWithClass(x.GetText(), "lexerCommands")) .Select(FSharpChoice <DiagramItem, string> .NewChoice1Of2)))); } return(new Sequence(lexerElements)); }
private static DiagramItem EBNFSuffix(ANTLRv4Parser.EbnfSuffixContext ebnfSuffix, DiagramItem element) { if (ebnfSuffix == null) { return(element); } switch (ebnfSuffix.GetText()) { case "?": return(Optional(element, false)); case "*": case "*?": return(ZeroOrMore(FSharpChoice <DiagramItem, string> .NewChoice1Of2(element), FSharpOption <FSharpChoice <DiagramItem, string> > .None, false)); case "+": return(new OneOrMore(FSharpChoice <DiagramItem, string> .NewChoice1Of2(element), FSharpOption <FSharpChoice <DiagramItem, string> > .None)); default: throw new InvalidOperationException("WTF?!"); } }
public void Choice() { IsTrue(FSharpChoice <int, string> .NewChoice1Of2(1).IsChoice1Of2); Equal((FSharpChoice <int, string> .NewChoice1Of2(1) as FSharpChoice <int, string> .Choice1Of2).Item, 1); }
public void MatchAction() { var a = FSharpChoice <int, string> .NewChoice1Of2(1); a.Match(Console.WriteLine, _ => Assert.Fail("is string")); }
private static Diagram DiagramOf(DiagramItem item) => new Diagram(new[] { FSharpChoice <DiagramItem, string> .NewChoice1Of2(item) }, FSharpOption <ComplexityType> .None, noneString);