Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
MemberRelationship.cs
Go to the documentation of this file.
2
4
5public readonly struct MemberRelationship
6{
7 public static readonly MemberRelationship Empty;
8
9 public bool IsEmpty => Owner == null;
10
11 public MemberDescriptor Member { get; }
12
13 public object? Owner { get; }
14
15 public MemberRelationship(object owner, MemberDescriptor member)
16 {
17 Owner = owner ?? throw new ArgumentNullException("owner");
18 Member = member ?? throw new ArgumentNullException("member");
19 }
20
21 public override bool Equals([NotNullWhen(true)] object? obj)
22 {
23 if (obj is MemberRelationship memberRelationship && memberRelationship.Owner == Owner)
24 {
25 return memberRelationship.Member == Member;
26 }
27 return false;
28 }
29
30 public override int GetHashCode()
31 {
32 if (Owner == null)
33 {
34 return base.GetHashCode();
35 }
36 return Owner.GetHashCode() ^ Member.GetHashCode();
37 }
38
39 public static bool operator ==(MemberRelationship left, MemberRelationship right)
40 {
41 if (left.Owner == right.Owner)
42 {
43 return left.Member == right.Member;
44 }
45 return false;
46 }
47
48 public static bool operator !=(MemberRelationship left, MemberRelationship right)
49 {
50 return !(left == right);
51 }
52}
override bool Equals([NotNullWhen(true)] object? obj)
static bool operator==(MemberRelationship left, MemberRelationship right)
static bool operator!=(MemberRelationship left, MemberRelationship right)