Struct StructItem

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

Implementations§

Source§

impl<'a> StructItem<'a>

Source

pub fn name(&self) -> &str

Examples found in repository?
examples/downcast.rs (line 11)
1fn main() {
2    use crate_inspector::{CrateBuilder, StructItem};
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        if let Some(strc) = krate.downcast::<StructItem>(item) {
11            println!("struct: {}", strc.name());
12        }
13    }
14}
More examples
Hide additional examples
examples/items.rs (line 13)
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 field_ids(&self) -> Option<impl Iterator<Item = &Id>>

Source

pub fn fields(&self) -> Option<impl Iterator<Item = FieldItem<'_>>>

Source

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

Examples found in repository?
examples/items.rs (line 14)
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 trait_impls(&self) -> impl Iterator<Item = ImplItem<'_>>

Iterate over struct impls that are trait impls (impl <Trait> for <Struct> { ... }). These may include auto/blanket impls.

Source

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

Iterate over struct blanket impls (impl<T: ...> <Trait> for <Struct<T>> { ... }).

Source

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

Iterate over struct non-blanket impls (impl <Trait> for <Struct> { ... }).

Source

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

Iterator over struct impls that are not trait impls.

Trait Implementations§

Source§

impl<'a> Clone for StructItem<'a>

Source§

fn clone(&self) -> StructItem<'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 StructItem<'a>

Source§

type Inner = Struct

Source§

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

Source§

fn new(krate: &'a Crate, item: &'a Item, struct_: &'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 StructItem<'a>

Source§

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

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

impl HasName for StructItem<'_>

Source§

fn name(&self) -> &str

Source§

impl<'a> PartialEq for StructItem<'a>

Source§

fn eq(&self, other: &StructItem<'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 StructItem<'a>

Source§

impl<'a> Eq for StructItem<'a>

Source§

impl<'a> StructuralPartialEq for StructItem<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for StructItem<'a>

§

impl<'a> RefUnwindSafe for StructItem<'a>

§

impl<'a> Send for StructItem<'a>

§

impl<'a> Sync for StructItem<'a>

§

impl<'a> Unpin for StructItem<'a>

§

impl<'a> UnwindSafe for StructItem<'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