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
impl PublicApi
sourcepub fn items(&self) -> impl Iterator<Item = &PublicItem>
pub fn items(&self) -> impl Iterator<Item = &PublicItem>
Returns an iterator over all public items in the public API
sourcepub fn into_items(self) -> impl Iterator<Item = PublicItem>
pub fn into_items(self) -> impl Iterator<Item = PublicItem>
Like Self::items()
, but ownership of all PublicItem
s are
transferred to the caller.
sourcepub fn missing_item_ids(&self) -> impl Iterator<Item = &String>
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.