Struct ModuleItem

Source
pub struct ModuleItem<'a> { /* private fields */ }

Implementations§

Source§

impl<'a> ModuleItem<'a>

Source

pub fn name(&self) -> &str

Examples found in repository?
examples/items.rs (line 25)
1fn main() {
2    use crate_inspector::CrateBuilder;
3
4    let builder = CrateBuilder::default()
5        .toolchain("nightly")
6        .manifest_path("Cargo.toml");
7    let krate = builder.build().unwrap();
8
9    for item in krate.items() {
10        println!("item: {:?}", item.name);
11    }
12    for strc in krate.structs() {
13        println!("struct: {}", strc.name());
14        println!("#impls: {}", strc.impls().count());
15    }
16    for enm in krate.enums() {
17        println!("enum: {}", enm.name());
18        println!("variants: {:?}", enm.variants().collect::<Vec<_>>());
19        println!(
20            "#methods: {}",
21            enm.impls().fold(0, |acc, i| acc + i.functions().count())
22        );
23    }
24    for sub in krate.sub_modules() {
25        println!("submodule: {}", sub.name());
26    }
27    if let Some(item) = krate.get_item("format") {
28        println!("item: {:?}", item.id);
29    }
30}
Source

pub fn item_ids(&self) -> impl Iterator<Item = &Id>

Source

pub fn items(&self) -> impl Iterator<Item = &Item>

Source

pub fn parent(&self) -> Option<ModuleItem<'a>>

Source§

impl<'a> ModuleItem<'a>

Source

pub fn constants(&self) -> impl Iterator<Item = ConstantItem<'_>>

Source

pub fn functions(&self) -> impl Iterator<Item = FunctionItem<'_>>

Source

pub fn structs(&self) -> impl Iterator<Item = StructItem<'_>>

Source

pub fn enums(&self) -> impl Iterator<Item = EnumItem<'_>>

Source

pub fn traits(&self) -> impl Iterator<Item = TraitItem<'_>>

Source

pub fn type_aliases(&self) -> impl Iterator<Item = TypeAliasItem<'_>>

Source

pub fn trait_aliases(&self) -> impl Iterator<Item = TraitAliasItem<'_>>

Source

pub fn unions(&self) -> impl Iterator<Item = UnionItem<'_>>

Source

pub fn modules(&self) -> impl Iterator<Item = ModuleItem<'_>>

Source

pub fn impls(&self) -> impl Iterator<Item = ImplItem<'_>>

Source

pub fn uses(&self) -> impl Iterator<Item = UseItem<'_>>

Source

pub fn get_item(&self, name: &str) -> Option<&Item>

Get an item by its name.

Source

pub fn get_constant(&self, name: &str) -> Option<ConstantItem<'_>>

Get a constant by its name.

Source

pub fn get_function(&self, name: &str) -> Option<FunctionItem<'_>>

Get a function by its name.

Source

pub fn get_struct(&self, name: &str) -> Option<StructItem<'_>>

Get a struct by its name.

Source

pub fn get_enum(&self, name: &str) -> Option<EnumItem<'_>>

Get an enum by its name.

Source

pub fn get_trait(&self, name: &str) -> Option<TraitItem<'_>>

Get a trait by its name.

Source

pub fn get_type_alias(&self, name: &str) -> Option<TypeAliasItem<'_>>

Get a type alias by its name.

Source

pub fn get_trait_alias(&self, name: &str) -> Option<TraitAliasItem<'_>>

Get a trait alias by its name.

Source

pub fn get_union(&self, name: &str) -> Option<UnionItem<'_>>

Get a union by its name.

Source

pub fn get_module(&self, name: &str) -> Option<ModuleItem<'_>>

Get a module by its name.

Trait Implementations§

Source§

impl<'a> Clone for ModuleItem<'a>

Source§

fn clone(&self) -> ModuleItem<'a>

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'a> CrateItem<'a> for ModuleItem<'a>

Source§

type Inner = Module

Source§

fn downcast(inner: &'a ItemEnum) -> Option<&'a Self::Inner>

Source§

fn new(krate: &'a Crate, item: &'a Item, module: &'a Self::Inner) -> Self

Source§

fn item(&self) -> &'a Item

Source§

fn inner(&self) -> &'a Self::Inner

Source§

fn krate(&self) -> &'a Crate

Source§

fn is_public(&self) -> bool

Source§

fn is_crate_item(&self) -> bool

Source§

fn is_root_item(&self) -> bool

Source§

fn is_external_item(&self) -> bool

Source§

fn id(&'a self) -> &'a Id

Source§

fn module(&self) -> Option<ModuleItem<'a>>

Source§

impl<'a> Debug for ModuleItem<'a>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl HasName for ModuleItem<'_>

Source§

fn name(&self) -> &str

Source§

impl<'a> PartialEq for ModuleItem<'a>

Source§

fn eq(&self, other: &ModuleItem<'a>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<'a> Copy for ModuleItem<'a>

Source§

impl<'a> Eq for ModuleItem<'a>

Source§

impl<'a> StructuralPartialEq for ModuleItem<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for ModuleItem<'a>

§

impl<'a> RefUnwindSafe for ModuleItem<'a>

§

impl<'a> Send for ModuleItem<'a>

§

impl<'a> Sync for ModuleItem<'a>

§

impl<'a> Unpin for ModuleItem<'a>

§

impl<'a> UnwindSafe for ModuleItem<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more