Files
2026-03-30 20:11:57 +07:00

154 lines
3.6 KiB
C#

//
// Author:
// Jb Evain (jbevain@gmail.com)
//
// Copyright (c) 2008 - 2015 Jb Evain
// Copyright (c) 2008 - 2011 Novell, Inc.
//
// Licensed under the MIT/X11 license.
//
using System.Collections.Generic;
namespace MonoFN.Cecil.Metadata
{
internal struct Row<T1, T2>
{
internal T1 Col1;
internal T2 Col2;
public Row(T1 col1, T2 col2)
{
Col1 = col1;
Col2 = col2;
}
}
internal struct Row<T1, T2, T3>
{
internal T1 Col1;
internal T2 Col2;
internal T3 Col3;
public Row(T1 col1, T2 col2, T3 col3)
{
Col1 = col1;
Col2 = col2;
Col3 = col3;
}
}
internal struct Row<T1, T2, T3, T4>
{
internal T1 Col1;
internal T2 Col2;
internal T3 Col3;
internal T4 Col4;
public Row(T1 col1, T2 col2, T3 col3, T4 col4)
{
Col1 = col1;
Col2 = col2;
Col3 = col3;
Col4 = col4;
}
}
internal struct Row<T1, T2, T3, T4, T5>
{
internal T1 Col1;
internal T2 Col2;
internal T3 Col3;
internal T4 Col4;
internal T5 Col5;
public Row(T1 col1, T2 col2, T3 col3, T4 col4, T5 col5)
{
Col1 = col1;
Col2 = col2;
Col3 = col3;
Col4 = col4;
Col5 = col5;
}
}
internal struct Row<T1, T2, T3, T4, T5, T6>
{
internal T1 Col1;
internal T2 Col2;
internal T3 Col3;
internal T4 Col4;
internal T5 Col5;
internal T6 Col6;
public Row(T1 col1, T2 col2, T3 col3, T4 col4, T5 col5, T6 col6)
{
Col1 = col1;
Col2 = col2;
Col3 = col3;
Col4 = col4;
Col5 = col5;
Col6 = col6;
}
}
internal struct Row<T1, T2, T3, T4, T5, T6, T7, T8, T9>
{
internal T1 Col1;
internal T2 Col2;
internal T3 Col3;
internal T4 Col4;
internal T5 Col5;
internal T6 Col6;
internal T7 Col7;
internal T8 Col8;
internal T9 Col9;
public Row(T1 col1, T2 col2, T3 col3, T4 col4, T5 col5, T6 col6, T7 col7, T8 col8, T9 col9)
{
Col1 = col1;
Col2 = col2;
Col3 = col3;
Col4 = col4;
Col5 = col5;
Col6 = col6;
Col7 = col7;
Col8 = col8;
Col9 = col9;
}
}
internal sealed class RowEqualityComparer : IEqualityComparer<Row<string, string>>, IEqualityComparer<Row<uint, uint>>, IEqualityComparer<Row<uint, uint, uint>>
{
public bool Equals(Row<string, string> x, Row<string, string> y)
{
return x.Col1 == y.Col1 && x.Col2 == y.Col2;
}
public int GetHashCode(Row<string, string> obj)
{
string x = obj.Col1, y = obj.Col2;
return (x != null ? x.GetHashCode() : 0) ^ (y != null ? y.GetHashCode() : 0);
}
public bool Equals(Row<uint, uint> x, Row<uint, uint> y)
{
return x.Col1 == y.Col1 && x.Col2 == y.Col2;
}
public int GetHashCode(Row<uint, uint> obj)
{
return (int)(obj.Col1 ^ obj.Col2);
}
public bool Equals(Row<uint, uint, uint> x, Row<uint, uint, uint> y)
{
return x.Col1 == y.Col1 && x.Col2 == y.Col2 && x.Col3 == y.Col3;
}
public int GetHashCode(Row<uint, uint, uint> obj)
{
return (int)(obj.Col1 ^ obj.Col2 ^ obj.Col3);
}
}
}