Free cookie consent management tool by TermsFeed Policy Generator

source: branches/2389-EpsLexicase/HeuristicLab.ExtLibs/HeuristicLab.Cecil/0.9.5/Mono.Cecil-0.9.5/Mono.Cecil/Mono.Cecil.Metadata/Row.cs

Last change on this file was 11700, checked in by jkarder, 10 years ago

#2077: created branch and added first version

File size: 3.8 KB
Line 
1//
2// Row.cs
3//
4// Author:
5//   Jb Evain (jbevain@gmail.com)
6//
7// Copyright (c) 2008 - 2011 Jb Evain
8//
9// Permission is hereby granted, free of charge, to any person obtaining
10// a copy of this software and associated documentation files (the
11// "Software"), to deal in the Software without restriction, including
12// without limitation the rights to use, copy, modify, merge, publish,
13// distribute, sublicense, and/or sell copies of the Software, and to
14// permit persons to whom the Software is furnished to do so, subject to
15// the following conditions:
16//
17// The above copyright notice and this permission notice shall be
18// included in all copies or substantial portions of the Software.
19//
20// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
23// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
24// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
25// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27//
28
29using System.Collections.Generic;
30
31namespace Mono.Cecil.Metadata {
32
33  struct Row<T1, T2> {
34    internal T1 Col1;
35    internal T2 Col2;
36
37    public Row (T1 col1, T2 col2)
38    {
39      Col1 = col1;
40      Col2 = col2;
41    }
42  }
43
44  struct Row<T1, T2, T3> {
45    internal T1 Col1;
46    internal T2 Col2;
47    internal T3 Col3;
48
49    public Row (T1 col1, T2 col2, T3 col3)
50    {
51      Col1 = col1;
52      Col2 = col2;
53      Col3 = col3;
54    }
55  }
56
57  struct Row<T1, T2, T3, T4> {
58    internal T1 Col1;
59    internal T2 Col2;
60    internal T3 Col3;
61    internal T4 Col4;
62
63    public Row (T1 col1, T2 col2, T3 col3, T4 col4)
64    {
65      Col1 = col1;
66      Col2 = col2;
67      Col3 = col3;
68      Col4 = col4;
69    }
70  }
71
72  struct Row<T1, T2, T3, T4, T5> {
73    internal T1 Col1;
74    internal T2 Col2;
75    internal T3 Col3;
76    internal T4 Col4;
77    internal T5 Col5;
78
79    public Row (T1 col1, T2 col2, T3 col3, T4 col4, T5 col5)
80    {
81      Col1 = col1;
82      Col2 = col2;
83      Col3 = col3;
84      Col4 = col4;
85      Col5 = col5;
86    }
87  }
88
89  struct Row<T1, T2, T3, T4, T5, T6> {
90    internal T1 Col1;
91    internal T2 Col2;
92    internal T3 Col3;
93    internal T4 Col4;
94    internal T5 Col5;
95    internal T6 Col6;
96
97    public Row (T1 col1, T2 col2, T3 col3, T4 col4, T5 col5, T6 col6)
98    {
99      Col1 = col1;
100      Col2 = col2;
101      Col3 = col3;
102      Col4 = col4;
103      Col5 = col5;
104      Col6 = col6;
105    }
106  }
107
108  struct Row<T1, T2, T3, T4, T5, T6, T7, T8, T9> {
109    internal T1 Col1;
110    internal T2 Col2;
111    internal T3 Col3;
112    internal T4 Col4;
113    internal T5 Col5;
114    internal T6 Col6;
115    internal T7 Col7;
116    internal T8 Col8;
117    internal T9 Col9;
118
119    public Row (T1 col1, T2 col2, T3 col3, T4 col4, T5 col5, T6 col6, T7 col7, T8 col8, T9 col9)
120    {
121      Col1 = col1;
122      Col2 = col2;
123      Col3 = col3;
124      Col4 = col4;
125      Col5 = col5;
126      Col6 = col6;
127      Col7 = col7;
128      Col8 = col8;
129      Col9 = col9;
130    }
131  }
132
133  sealed class RowEqualityComparer : IEqualityComparer<Row<string, string>>, IEqualityComparer<Row<uint, uint>>, IEqualityComparer<Row<uint, uint, uint>> {
134
135    public bool Equals (Row<string, string> x, Row<string, string> y)
136    {
137      return x.Col1 == y.Col1
138        && x.Col2 == y.Col2;
139    }
140
141    public int GetHashCode (Row<string, string> obj)
142    {
143      string x = obj.Col1, y = obj.Col2;
144      return (x != null ? x.GetHashCode () : 0) ^ (y != null ? y.GetHashCode () : 0);
145    }
146
147    public bool Equals (Row<uint, uint> x, Row<uint, uint> y)
148    {
149      return x.Col1 == y.Col1
150        && x.Col2 == y.Col2;
151    }
152
153    public int GetHashCode (Row<uint, uint> obj)
154    {
155      return (int) (obj.Col1 ^ obj.Col2);
156    }
157
158    public bool Equals (Row<uint, uint, uint> x, Row<uint, uint, uint> y)
159    {
160      return x.Col1 == y.Col1
161        && x.Col2 == y.Col2
162        && x.Col3 == y.Col3;
163    }
164
165    public int GetHashCode (Row<uint, uint, uint> obj)
166    {
167      return (int) (obj.Col1 ^ obj.Col2 ^ obj.Col3);
168    }
169  }
170}
Note: See TracBrowser for help on using the repository browser.