docsrs 0.1.6

Easily retrieve docs for any crate on crates.io
Documentation
use crate::doc::indexed::SearchKey;
use rustdoc_types::{Crate, Id, ItemEnum};

use super::{Doc, Parsed};

impl Doc<Parsed> {
    pub(super) fn search_keys_enums<'a>(
        krate: &'a Crate,
        id: &'a Id,
        base_path: &'a str,
    ) -> impl Iterator<Item = SearchKey> + 'a {
        krate
            .index
            .values()
            .filter_map(move |impl_item| match &impl_item.inner {
                ItemEnum::Impl(impl_block) => {
                    let rustdoc_types::Type::ResolvedPath(path) = &impl_block.for_ else {
                        return None;
                    };

                    if &path.id != id {
                        return None;
                    }

                    Some(Self::impl_method_keys(krate, impl_block, base_path))
                }
                _ => None,
            })
            .flatten()
    }
}