Struct public_api::PublicApi

source ·
#[non_exhaustive]
pub struct PublicApi { /* private fields */ }
Expand description

The public API of a crate

Create an instance with Builder.

§Rendering the items

To render the items in the public API you can iterate over the items.

You get the rustdoc_json_str in the example below as explained in the crate documentation, either via rustdoc_json or by calling cargo rustdoc yourself.

use public_api::PublicApi;
use std::path::PathBuf;

// Gather the rustdoc content as described in this crates top-level documentation.
let public_api = public_api::Builder::from_rustdoc_json(&rustdoc_json).build()?;

for public_item in public_api.items() {
    // here we print the items to stdout, we could also write to a string or a file.
    println!("{}", public_item);
}

// If you want all items of the public API in a single big multi-line String then
// you can do like this:
let public_api_string = public_api.to_string();

Implementations§

source§

impl PublicApi

source

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

Returns an iterator over all public items in the public API

source

pub fn into_items(self) -> impl Iterator<Item = PublicItem>

Like Self::items(), but ownership of all PublicItems are transferred to the caller.

source

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

The rustdoc JSON IDs of missing but referenced items. Intended for use with --verbose flags or similar.

In some cases, a public item might be referenced from another public item (e.g. a mod), but is missing from the rustdoc JSON file. This occurs for example in the case of re-exports of external modules (see https://github.com/Enselic/cargo-public-api/issues/103). The entries in this Vec are what IDs that could not be found.

The exact format of IDs are to be considered an implementation detail and must not be be relied on.

Trait Implementations§

source§

impl Debug for PublicApi

source§

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

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

impl Display for PublicApi

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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> ToString for T
where T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

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

§

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>,

§

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.