Last active
November 2, 2020 07:15
-
-
Save fpawel/5f505e1c700240a5024010e072e13c30 to your computer and use it in GitHub Desktop.
PaymentMethod.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[CompilationMapping(SourceConstructFlags.SumType), Struct, DebuggerDisplay("{__DebugDisplay(),nq}")] | |
[Serializable] | |
[StructLayout(LayoutKind.Auto, CharSet = CharSet.Auto)] | |
public struct PaymentMethod : IEquatable<Program.PaymentMethod>, IStructuralEquatable, IComparable<Program.PaymentMethod>, IComparable, IStructuralComparable | |
{ | |
public static class Tags | |
{ | |
public const int Cash = 0; | |
public const int Check = 1; | |
public const int CreditCard = 2; | |
} | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
internal Program.CheckNumber item; | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
internal Program.CardType item1; | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
internal Program.CardNumber item2; | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
internal int _tag; | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
public int Tag | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this._tag; | |
} | |
} | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
public static Program.PaymentMethod Cash | |
{ | |
[CompilationMapping(SourceConstructFlags.UnionCase, 0)] | |
get | |
{ | |
return new Program.PaymentMethod(0); | |
} | |
} | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
public bool IsCash | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this.Tag == 0; | |
} | |
} | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
public bool IsCheck | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this.Tag == 1; | |
} | |
} | |
[DebuggerBrowsable(DebuggerBrowsableState.Never), DebuggerNonUserCode, CompilerGenerated] | |
public bool IsCreditCard | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this.Tag == 2; | |
} | |
} | |
[CompilationMapping(SourceConstructFlags.Field, 1, 0), DebuggerNonUserCode, CompilerGenerated] | |
public Program.CheckNumber Item | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this.item; | |
} | |
} | |
[CompilationMapping(SourceConstructFlags.Field, 2, 0), DebuggerNonUserCode, CompilerGenerated] | |
public Program.CardType Item1 | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this.item1; | |
} | |
} | |
[CompilationMapping(SourceConstructFlags.Field, 2, 1), DebuggerNonUserCode, CompilerGenerated] | |
public Program.CardNumber Item2 | |
{ | |
[DebuggerNonUserCode, CompilerGenerated] | |
get | |
{ | |
return this.item2; | |
} | |
} | |
[CompilationMapping(SourceConstructFlags.UnionCase, 1)] | |
public static Program.PaymentMethod NewCheck(Program.CheckNumber item) | |
{ | |
return new Program.PaymentMethod(item, 1); | |
} | |
[CompilationMapping(SourceConstructFlags.UnionCase, 2)] | |
public static Program.PaymentMethod NewCreditCard(Program.CardType item1, Program.CardNumber item2) | |
{ | |
return new Program.PaymentMethod(item1, item2, 2); | |
} | |
[DebuggerNonUserCode, CompilerGenerated] | |
internal PaymentMethod(int _tag) | |
{ | |
this._tag = _tag; | |
} | |
[DebuggerNonUserCode, CompilerGenerated] | |
internal PaymentMethod(Program.CheckNumber item, int _tag) | |
{ | |
this.item = item; | |
this._tag = _tag; | |
} | |
[DebuggerNonUserCode, CompilerGenerated] | |
internal PaymentMethod(Program.CardType item1, Program.CardNumber item2, int _tag) | |
{ | |
this.item1 = item1; | |
this.item2 = item2; | |
this._tag = _tag; | |
} | |
[DebuggerNonUserCode, CompilerGenerated] | |
internal object __DebugDisplay() | |
{ | |
return ExtraTopLevelOperators.PrintFormatToString<FSharpFunc<Program.PaymentMethod, string>>(new PrintfFormat<FSharpFunc<Program.PaymentMethod, string>, Unit, string, string, string>("%+0.8A")).Invoke(this); | |
} | |
[CompilerGenerated] | |
public sealed override int CompareTo(Program.PaymentMethod obj) | |
{ | |
int tag = this._tag; | |
int tag2 = obj._tag; | |
if (tag == tag2) | |
{ | |
switch (this.Tag) | |
{ | |
case 0: | |
return 0; | |
case 1: | |
{ | |
IComparer genericComparer = LanguagePrimitives.GenericComparer; | |
Program.CheckNumber checkNumber = this.item; | |
Program.CheckNumber obj2 = obj.item; | |
return checkNumber.CompareTo(obj2, genericComparer); | |
} | |
case 2: | |
{ | |
IComparer genericComparer2 = LanguagePrimitives.GenericComparer; | |
Program.CardType cardType = this.item1; | |
Program.CardType obj3 = obj.item1; | |
int num = cardType.CompareTo(obj3, genericComparer2); | |
if (num < 0) | |
{ | |
return num; | |
} | |
if (num > 0) | |
{ | |
return num; | |
} | |
IComparer genericComparer3 = LanguagePrimitives.GenericComparer; | |
Program.CardNumber cardNumber = this.item2; | |
Program.CardNumber obj4 = obj.item2; | |
return cardNumber.CompareTo(obj4, genericComparer3); | |
} | |
} | |
return 0; | |
} | |
return tag - tag2; | |
} | |
[CompilerGenerated] | |
public sealed override int CompareTo(object obj) | |
{ | |
return this.CompareTo((Program.PaymentMethod)obj); | |
} | |
[CompilerGenerated] | |
public sealed override int CompareTo(object obj, IComparer comp) | |
{ | |
Program.PaymentMethod paymentMethod = (Program.PaymentMethod)obj; | |
int tag = this._tag; | |
int tag2 = paymentMethod._tag; | |
if (tag == tag2) | |
{ | |
switch (this.Tag) | |
{ | |
case 0: | |
return 0; | |
case 1: | |
{ | |
Program.CheckNumber checkNumber = this.item; | |
Program.CheckNumber obj2 = paymentMethod.item; | |
return checkNumber.CompareTo(obj2, comp); | |
} | |
case 2: | |
{ | |
Program.CardType cardType = this.item1; | |
Program.CardType obj3 = paymentMethod.item1; | |
int num = cardType.CompareTo(obj3, comp); | |
if (num < 0) | |
{ | |
return num; | |
} | |
if (num > 0) | |
{ | |
return num; | |
} | |
Program.CardNumber cardNumber = this.item2; | |
Program.CardNumber obj4 = paymentMethod.item2; | |
return cardNumber.CompareTo(obj4, comp); | |
} | |
} | |
return 0; | |
} | |
return tag - tag2; | |
} | |
[CompilerGenerated] | |
public sealed override int GetHashCode(IEqualityComparer comp) | |
{ | |
switch (this.Tag) | |
{ | |
case 0: | |
IL_1A: | |
return this._tag; | |
case 1: | |
{ | |
int num = 1; | |
return -1640531527 + (this.item.GetHashCode(comp) + ((num << 6) + (num >> 2))); | |
} | |
case 2: | |
{ | |
int num = 2; | |
num = -1640531527 + (this.item2.GetHashCode(comp) + ((num << 6) + (num >> 2))); | |
return -1640531527 + (this.item1.GetHashCode(comp) + ((num << 6) + (num >> 2))); | |
} | |
} | |
goto IL_1A; | |
} | |
[CompilerGenerated] | |
public sealed override int GetHashCode() | |
{ | |
return this.GetHashCode(LanguagePrimitives.GenericEqualityComparer); | |
} | |
[CompilerGenerated] | |
public sealed override bool Equals(object obj, IEqualityComparer comp) | |
{ | |
if (!LanguagePrimitives.IntrinsicFunctions.TypeTestGeneric<Program.PaymentMethod>(obj)) | |
{ | |
return false; | |
} | |
Program.PaymentMethod paymentMethod = (Program.PaymentMethod)obj; | |
int tag = this._tag; | |
int tag2 = paymentMethod._tag; | |
if (tag == tag2) | |
{ | |
switch (this.Tag) | |
{ | |
case 0: | |
return true; | |
case 1: | |
{ | |
Program.CheckNumber checkNumber = this.item; | |
Program.CheckNumber obj2 = paymentMethod.item; | |
return checkNumber.Equals(obj2, comp); | |
} | |
case 2: | |
{ | |
Program.CardType cardType = this.item1; | |
Program.CardType obj3 = paymentMethod.item1; | |
if (cardType.Equals(obj3, comp)) | |
{ | |
Program.CardNumber cardNumber = this.item2; | |
Program.CardNumber obj4 = paymentMethod.item2; | |
return cardNumber.Equals(obj4, comp); | |
} | |
return false; | |
} | |
} | |
return true; | |
} | |
return false; | |
} | |
[CompilerGenerated] | |
public sealed override bool Equals(Program.PaymentMethod obj) | |
{ | |
int tag = this._tag; | |
int tag2 = obj._tag; | |
if (tag == tag2) | |
{ | |
switch (this.Tag) | |
{ | |
case 0: | |
return true; | |
case 1: | |
return this.item.Equals(obj.item); | |
case 2: | |
return this.item1.Equals(obj.item1) && this.item2.Equals(obj.item2); | |
} | |
return true; | |
} | |
return false; | |
} | |
[CompilerGenerated] | |
public sealed override bool Equals(object obj) | |
{ | |
if (!LanguagePrimitives.IntrinsicFunctions.TypeTestGeneric<Program.PaymentMethod>(obj)) | |
{ | |
return false; | |
} | |
Program.PaymentMethod obj2 = (Program.PaymentMethod)obj; | |
return this.Equals(obj2); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment