public static Type ToType(this StratusConsoleCommandParameter parameter)
        {
            switch (parameter)
            {
            case StratusConsoleCommandParameter.Integer:
                return(typeof(int));

            case StratusConsoleCommandParameter.Float:
                return(typeof(float));

            case StratusConsoleCommandParameter.String:
                return(typeof(string));

            case StratusConsoleCommandParameter.Boolean:
                return(typeof(bool));

            case StratusConsoleCommandParameter.Enum:
                return(typeof(Enum));

            case StratusConsoleCommandParameter.Vector2:
                return(typeof(Vector2));

            case StratusConsoleCommandParameter.Vector3:
                return(typeof(Vector3));

            case StratusConsoleCommandParameter.Rect:
                return(typeof(Rect));

            case StratusConsoleCommandParameter.Object:
                return(typeof(object));
            }
            return(null);
        }
        public static bool TryDeduceParameter(Type type, out StratusConsoleCommandParameter parameter)
        {
            if (type.Equals(typeof(int)))
            {
                parameter = StratusConsoleCommandParameter.Integer;
                return(true);
            }
            else if (type.Equals(typeof(float)))
            {
                parameter = StratusConsoleCommandParameter.Float;
                return(true);
            }
            else if (type.Equals(typeof(string)))
            {
                parameter = StratusConsoleCommandParameter.String;
                return(true);
            }
            else if (type.Equals(typeof(bool)))
            {
                parameter = StratusConsoleCommandParameter.Boolean;
                return(true);
            }
            else if (type.IsEnum)
            {
                parameter = StratusConsoleCommandParameter.Enum;
                return(true);
            }
            else if (type.Equals(typeof(Vector2)))
            {
                parameter = StratusConsoleCommandParameter.Vector2;
                return(true);
            }
            else if (type.Equals(typeof(Vector3)))
            {
                parameter = StratusConsoleCommandParameter.Vector3;
                return(true);
            }
            else if (type.Equals(typeof(Rect)))
            {
                parameter = StratusConsoleCommandParameter.Rect;
                return(true);
            }

            parameter = StratusConsoleCommandParameter.Object;
            return(true);
        }
 public StratusConsoleCommandParameterInformation(Type type, StratusConsoleCommandParameter parameter)
 {
     this.type        = type;
     this.deducedType = parameter;
 }