Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
SignatureHeader.cs
Go to the documentation of this file.
2using System.Text;
3
5
6public struct SignatureHeader : IEquatable<SignatureHeader>
7{
8 private readonly byte _rawValue;
9
10 public const byte CallingConventionOrKindMask = 15;
11
12 public byte RawValue => _rawValue;
13
14 public SignatureCallingConvention CallingConvention
15 {
16 get
17 {
18 int num = _rawValue & 0xF;
19 if (num > 5 && num != 9)
20 {
21 return SignatureCallingConvention.Default;
22 }
24 }
25 }
26
28 {
29 get
30 {
31 int num = _rawValue & 0xF;
32 if (num <= 5 || num == 9)
33 {
34 return SignatureKind.Method;
35 }
36 return (SignatureKind)num;
37 }
38 }
39
41
42 public bool HasExplicitThis => (_rawValue & 0x40) != 0;
43
44 public bool IsInstance => (_rawValue & 0x20) != 0;
45
46 public bool IsGeneric => (_rawValue & 0x10) != 0;
47
48 public SignatureHeader(byte rawValue)
49 {
50 _rawValue = rawValue;
51 }
52
54 : this((byte)((uint)kind | (uint)convention | (uint)attributes))
55 {
56 }
57
58 public override bool Equals([NotNullWhen(true)] object? obj)
59 {
61 {
62 return Equals(other);
63 }
64 return false;
65 }
66
68 {
69 return _rawValue == other._rawValue;
70 }
71
72 public override int GetHashCode()
73 {
74 return _rawValue;
75 }
76
77 public static bool operator ==(SignatureHeader left, SignatureHeader right)
78 {
79 return left._rawValue == right._rawValue;
80 }
81
82 public static bool operator !=(SignatureHeader left, SignatureHeader right)
83 {
84 return left._rawValue != right._rawValue;
85 }
86
87 public override string ToString()
88 {
89 StringBuilder stringBuilder = new StringBuilder();
90 stringBuilder.Append(Kind.ToString());
91 if (Kind == SignatureKind.Method)
92 {
93 stringBuilder.Append(',');
94 stringBuilder.Append(CallingConvention.ToString());
95 }
96 if (Attributes != 0)
97 {
98 stringBuilder.Append(',');
99 stringBuilder.Append(Attributes.ToString());
100 }
101 return stringBuilder.ToString();
102 }
103}
override string ToString()
StringBuilder Append(char value, int repeatCount)
SignatureHeader(SignatureKind kind, SignatureCallingConvention convention, SignatureAttributes attributes)
static bool operator==(SignatureHeader left, SignatureHeader right)
static bool operator!=(SignatureHeader left, SignatureHeader right)
override bool Equals([NotNullWhen(true)] object? obj)