protected virtual string PrintParameters(UnrealEventInfo info, CXXFileType fileType, out int parameterCount)
        {
            var sb = new StringBuilder();

            var pCount = 0;

            info.Parameters.ForEach(p =>
            {
                var deconstructed = new List <IMemberInfo>();
                if (DeconstructAttribute.TryDeconstruct(p, ref deconstructed))
                {
                    deconstructed.ForEach(o =>
                    {
                        sb.Append(ParameterPrinter.Print(o, fileType) + ", ");
                        pCount++;
                    });
                }
                else
                {
                    sb.Append(ParameterPrinter.Print(p, fileType) + ", ");
                    pCount++;
                }
            });

            sb.RemoveLastComma();

            parameterCount = pCount;

            return(sb.ToString());
        }
        public IEnumerable <IMemberInfo> Deconstruct()
        {
            if (!HasAttribute <DeconstructAttribute>() && !Type.ImplementsInterface <IDeconstructible>())
            {
                Console.WriteLine("WHAT");
                return(null);
            }

            var result = new List <IMemberInfo>();

            return(DeconstructAttribute.TryDeconstruct(this, ref result) ? result : null);
        }
        private string PrintParameters(CXXFunctionInfo info, CXXFileType fileType)
        {
            var sb = new StringBuilder();

            info.Parameters.ForEach(p =>
            {
                var deconstructed = new List <IMemberInfo>();
                if (DeconstructAttribute.TryDeconstruct(p, ref deconstructed))
                {
                    deconstructed.ForEach(o => { sb.Append(ParameterPrinter.Print(o, fileType) + ", "); });
                }
                else
                {
                    sb.Append(ParameterPrinter.Print(p, fileType) + ", ");
                }
            });

            sb.RemoveLastComma();

            return(sb.ToString());
        }