public static IEnumerable <Type> GetArchAngelEditorBrowsableTypes(IEnumerable <Assembly> assemblies)
        {
            foreach (var assembly in assemblies)
            {
                if (!ProviderInfo.IsProvider(assembly))
                {
                    continue;
                }

                var types = assembly.GetTypes();

                foreach (var type in types)
                {
                    if (HasBrowserAttribute(type))
                    {
                        yield return(type);
                    }
                }
            }
        }
        public static IEnumerable <Type> GetApiExtensionTypes(IEnumerable <Assembly> assemblies)
        {
            foreach (var assembly in assemblies)
            {
                if (!ProviderInfo.IsProvider(assembly))
                {
                    continue;
                }

                var types = assembly.GetTypes();

                foreach (var type in types)
                {
                    if (HasExtensionAttribute(type))
                    {
                        yield return(type);
                    }
                }
            }
        }
        public static IEnumerable <Type> GetGeneratorIteratorTypes(IEnumerable <Assembly> assemblies)
        {
            foreach (var assembly in assemblies)
            {
                if (ProviderInfo.IsProvider(assembly) == false)
                {
                    continue;
                }

                var types = assembly.GetTypes();

                foreach (var type in types)
                {
                    if (IsGeneratorIterator(type))
                    {
                        yield return(type);
                    }
                }
            }
        }