diff --git a/Extensions.cs b/Extensions.cs
index 24c1740..647075f 100644
--- a/Extensions.cs
+++ b/Extensions.cs
@@ -14,54 +14,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Numerics;
-using System.Reflection;
-using System.Runtime.InteropServices;
-using System.Text;
-using System.Text.RegularExpressions;
-using System.Runtime.CompilerServices;
-
namespace System
{
public static class Extensions
{
- public static bool HasAnyFlag(this T value, T flag) where T : struct
- {
- long lValue = Convert.ToInt64(value);
- long lFlag = Convert.ToInt64(flag);
- return (lValue & lFlag) != 0;
- }
-
- public static string ToHexString(this byte[] byteArray, bool reverse = false)
- {
- if (reverse)
- return byteArray.Reverse().Aggregate("", (current, b) => current + b.ToString("X2"));
- else
- return byteArray.Aggregate("", (current, b) => current + b.ToString("X2"));
- }
-
- public static byte[] ToByteArray(this string str)
- {
- str = str.Replace(" ", String.Empty);
-
- var res = new byte[str.Length / 2];
- for (int i = 0; i < res.Length; ++i)
- {
- string temp = String.Concat(str[i * 2], str[i * 2 + 1]);
- res[i] = Convert.ToByte(temp, 16);
- }
- return res;
- }
-
- public static byte[] ToByteArray(this string value, char separator)
- {
- return Array.ConvertAll(value.Split(separator), byte.Parse);
- }
-
static uint LeftRotate(this uint value, int shiftCount)
{
return (value << shiftCount) | (value >> (0x20 - shiftCount));
@@ -111,182 +67,5 @@ namespace System
return combined;
}
-
- public static object[] Combine(this object[] data, params object[][] pData)
- {
- var combined = data;
-
- foreach (var arr in pData)
- {
- var currentSize = combined.Length;
-
- Array.Resize(ref combined, currentSize + arr.Length);
-
- Array.Copy(arr, 0, combined, currentSize, arr.Length);
- }
-
- return combined;
- }
-
- public static void Swap(ref T left, ref T right)
- {
- T temp = left;
- left = right;
- right = temp;
- }
-
- public static uint[] SerializeObject(this T obj)
- {
- //if (obj.GetType()() == null)
- //return null;
-
- var size = Marshal.SizeOf(typeof(T));
- var ptr = Marshal.AllocHGlobal(size);
- byte[] array = new byte[size];
-
- Marshal.StructureToPtr(obj, ptr, true);
- Marshal.Copy(ptr, array, 0, size);
-
- Marshal.FreeHGlobal(ptr);
-
- uint[] result = new uint[size / 4];
- Buffer.BlockCopy(array, 0, result, 0, array.Length);
-
- return result;
- }
-
- public static List DeserializeObjects(this ICollection data)
- {
- List list = new List();
-
- if (data.Count == 0)
- return list;
-
- if (typeof(T).GetCustomAttribute() == null)
- return list;
-
- byte[] result = new byte[data.Count * sizeof(uint)];
- Buffer.BlockCopy(data.ToArray(), 0, result, 0, result.Length);
-
- var typeSize = Marshal.SizeOf(typeof(T));
- var objCount = data.Count / (typeSize / sizeof(uint));
-
- for (var i = 0; i < objCount; ++i)
- {
- var ptr = Marshal.AllocHGlobal(typeSize);
- Marshal.Copy(result, typeSize * i, ptr, typeSize);
- list.Add((T)Marshal.PtrToStructure(ptr, typeof(T)));
- Marshal.FreeHGlobal(ptr);
- }
-
- return list;
- }
-
- #region Strings
- public static bool IsEmpty(this string str)
- {
- return string.IsNullOrEmpty(str);
- }
-
- public static T ToEnum(this string str) where T : struct
- {
- T value;
- if (!Enum.TryParse(str, out value))
- return default;
-
- return value;
- }
-
- public static string ConvertFormatSyntax(this string str)
- {
- string pattern = @"(%\W*\d*[a-zA-Z]*)";
-
- int count = 0;
- string result = Regex.Replace(str, pattern, m => string.Concat("{", count++, "}"));
-
- return result;
- }
-
- public static bool Like(this string toSearch, string toFind)
- {
- return toSearch.ToLower().Contains(toFind.ToLower());
- }
-
- public static bool IsNumber(this string str)
- {
- double value;
- return double.TryParse(str, out value);
- }
-
- public static int GetByteCount(this string str)
- {
- if (str.IsEmpty())
- return 0;
-
- return Encoding.UTF8.GetByteCount(str);
- }
-
- public static bool isExtendedLatinCharacter(char wchar)
- {
- if (isBasicLatinCharacter(wchar))
- return true;
- if (wchar >= 0x00C0 && wchar <= 0x00D6) // LATIN CAPITAL LETTER A WITH GRAVE - LATIN CAPITAL LETTER O WITH DIAERESIS
- return true;
- if (wchar >= 0x00D8 && wchar <= 0x00DE) // LATIN CAPITAL LETTER O WITH STROKE - LATIN CAPITAL LETTER THORN
- return true;
- if (wchar == 0x00DF) // LATIN SMALL LETTER SHARP S
- return true;
- if (wchar >= 0x00E0 && wchar <= 0x00F6) // LATIN SMALL LETTER A WITH GRAVE - LATIN SMALL LETTER O WITH DIAERESIS
- return true;
- if (wchar >= 0x00F8 && wchar <= 0x00FE) // LATIN SMALL LETTER O WITH STROKE - LATIN SMALL LETTER THORN
- return true;
- if (wchar >= 0x0100 && wchar <= 0x012F) // LATIN CAPITAL LETTER A WITH MACRON - LATIN SMALL LETTER I WITH OGONEK
- return true;
- if (wchar == 0x1E9E) // LATIN CAPITAL LETTER SHARP S
- return true;
- return false;
- }
-
- public static bool isBasicLatinCharacter(char wchar)
- {
- if (wchar >= 'a' && wchar <= 'z') // LATIN SMALL LETTER A - LATIN SMALL LETTER Z
- return true;
- if (wchar >= 'A' && wchar <= 'Z') // LATIN CAPITAL LETTER A - LATIN CAPITAL LETTER Z
- return true;
- return false;
- }
- #endregion
-
- #region BinaryReader
- public static string ReadCString(this BinaryReader reader)
- {
- byte num;
- List temp = new List();
-
- while ((num = reader.ReadByte()) != 0)
- temp.Add(num);
-
- return Encoding.UTF8.GetString(temp.ToArray());
- }
-
- public static string ReadString(this BinaryReader reader, int count)
- {
- var array = reader.ReadBytes(count);
- return Encoding.ASCII.GetString(array);
- }
-
- public static string ReadStringFromChars(this BinaryReader reader, int count)
- {
- return new string(reader.ReadChars(count));
- }
-
-
- public static T Read(this BinaryReader reader) where T : struct
- {
- byte[] result = reader.ReadBytes(Unsafe.SizeOf());
-
- return Unsafe.ReadUnaligned(ref result[0]);
- }
- #endregion
}
}
\ No newline at end of file