// // 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 MonoFN.Collections.Generic; using System; namespace MonoFN { internal static class Empty { public static readonly T[] Array = new T [0]; } internal class ArgumentNullOrEmptyException : ArgumentException { public ArgumentNullOrEmptyException(string paramName) : base("Argument null or empty", paramName) { } } } namespace MonoFN.Cecil { internal static partial class Mixin { public static bool IsNullOrEmpty(this T[] self) { return self == null || self.Length == 0; } public static bool IsNullOrEmpty(this Collection self) { return self == null || self.size == 0; } public static T[] Resize(this T[] self, int length) { Array.Resize(ref self, length); return self; } public static T[] Add(this T[] self, T item) { if (self == null) { self = new[] { item }; return self; } self = self.Resize(self.Length + 1); self[self.Length - 1] = item; return self; } } }