static void write_component_interfaces()

in cppwinrt/component_writers.h [211:252]


    static void write_component_interfaces(writer& w, TypeDef const& type)
    {
        bool const fastabi = has_fastabi(type);

        for (auto&&[interface_name, info] : get_interfaces(w, type))
        {
            if (!info.base && !info.is_default && !is_always_disabled(info.type))
            {
                if (!fastabi || !info.fastabi)
                {
                    w.write(", @", interface_name);
                }
            }
        }

        if (has_composable_constructors(w, type))
        {
            w.write(", composable");
        }

        auto base_type = get_base_class(type);

        if (!base_type)
        {
            return;
        }

        if (settings.component_filter.includes(base_type))
        {
            return;
        }

        w.write(", composing");

        for (auto&&[interface_name, info] : get_interfaces(w, base_type))
        {
            if (info.overridable && !is_always_disabled(info.type))
            {
                w.write(", @", interface_name);
            }
        }
    }