pub struct Bundle { /* private fields */ }Expand description
A loaded OKF bundle.
Implementations§
Source§impl Bundle
impl Bundle
Sourcepub fn load(root: impl AsRef<Path>) -> Result<Bundle, BundleError>
pub fn load(root: impl AsRef<Path>) -> Result<Bundle, BundleError>
Loads a bundle from a directory tree.
Returns an error only for I/O failures or a non-directory root. Per-file
parse failures are recorded in Bundle::parse_errors.
§Errors
Returns BundleError::NotADirectory if root does not exist or is
not a directory, and BundleError::Io for any underlying I/O failure
while walking the tree.
Sourcepub fn load_file(path: impl AsRef<Path>) -> Result<Bundle, BundleError>
pub fn load_file(path: impl AsRef<Path>) -> Result<Bundle, BundleError>
Loads a single concept file into a one-concept bundle.
If the file is inside a directory tree, the file’s parent is used as the bundle root.
§Errors
Returns BundleError::Io on filesystem read errors.
Sourcepub fn index_files(&self) -> &[PathBuf]
pub fn index_files(&self) -> &[PathBuf]
Paths of all index.md files found.
Sourcepub fn parse_errors(&self) -> &[(PathBuf, DocumentError)]
pub fn parse_errors(&self) -> &[(PathBuf, DocumentError)]
Files whose frontmatter could not be parsed during loading.
Sourcepub fn links_from(&self, id: &ConceptId) -> &[ResolvedLink]
pub fn links_from(&self, id: &ConceptId) -> &[ResolvedLink]
The resolved outbound cross-links from a concept.
Sourcepub fn backlinks(&self, id: &ConceptId) -> &[ConceptId]
pub fn backlinks(&self, id: &ConceptId) -> &[ConceptId]
The ids of concepts that link to the given concept (“cited by” / backlinks).
Sourcepub fn broken_links(&self) -> Vec<(ConceptId, String)>
pub fn broken_links(&self) -> Vec<(ConceptId, String)>
All broken internal links in the bundle, as (source, raw_target)
pairs. Broken links are permitted by the spec, so this is
informational.
Sourcepub fn okf_version(&self) -> Option<&str>
pub fn okf_version(&self) -> Option<&str>
The declared OKF version from the bundle-root index.md frontmatter, if
present (okf_version). This is the only place frontmatter is
permitted in an index.md.
Cached at load time, so this is cheap to call repeatedly. A consumer that does not understand the declared version SHOULD attempt best-effort consumption rather than refusing the bundle, so this is reported, never enforced.
Returns None whether the root index.md is absent, unreadable, or
lacks the key; a malformed root index.md is reported separately by
validate_bundle (in the okf-validator crate).
Sourcepub fn sources_of(&self, id: &ConceptId) -> &[ResolvedSource]
pub fn sources_of(&self, id: &ConceptId) -> &[ResolvedSource]
The concept’s sources entries, each resolved against the bundle.
Sourcepub fn derived_from(&self, id: &ConceptId) -> Vec<&ConceptId>
pub fn derived_from(&self, id: &ConceptId) -> Vec<&ConceptId>
The concepts this one derives from: the sources[].resource entries
that name another concept in this bundle.
Following these recursively is how a consumer lets credibility propagate; external leaf sources carry only their intrinsic signals.
Sourcepub fn derives(&self, id: &ConceptId) -> &[ConceptId]
pub fn derives(&self, id: &ConceptId) -> &[ConceptId]
The reverse of Bundle::derived_from: concepts that cite this one as
a source.
Sourcepub fn concepts_of_type<'a>(
&'a self,
type_: &'a str,
) -> impl Iterator<Item = &'a Concept>
pub fn concepts_of_type<'a>( &'a self, type_: &'a str, ) -> impl Iterator<Item = &'a Concept>
Every concept whose type matches exactly.
Sourcepub fn attested_computations(&self) -> impl Iterator<Item = &Concept>
pub fn attested_computations(&self) -> impl Iterator<Item = &Concept>
Every Attested Computation concept in the bundle.
This is the discovery path: a consumer reaches a computation by type, or by following a link from a concept that uses it.
A tag index synthesized by scanning frontmatter, tag to concept ids.
OKF does not specify a file format for aggregating documents by tag, so “a consumer that wants a tag-browsing view can synthesize one at consumption time.” This is that view.
Sourcepub fn stale_at(&self, now: DateTime) -> Vec<&Concept>
pub fn stale_at(&self, now: DateTime) -> Vec<&Concept>
Every concept that is stale at now: now >= stale_after.
Sourcepub fn stale_on(&self, today: Date) -> Vec<&Concept>
pub fn stale_on(&self, today: Date) -> Vec<&Concept>
Every concept that is stale on today: today >= stale_after.
Sourcepub fn resolve_path_field(&self, from: &ConceptId, raw: &str) -> Option<PathBuf>
pub fn resolve_path_field(&self, from: &ConceptId, raw: &str) -> Option<PathBuf>
Resolves a path-valued frontmatter field to a file inside the bundle.
Returns the first candidate from links::field_path_candidates that
actually exists on disk, or None for a URL, a scope descriptor, or a
path that names nothing. Unlike concept links, these fields routinely
point at non-markdown files such as references/attesters/revenue.py.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Bundle
impl RefUnwindSafe for Bundle
impl Send for Bundle
impl Sync for Bundle
impl Unpin for Bundle
impl UnsafeUnpin for Bundle
impl UnwindSafe for Bundle
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T, U> OverflowingInto<U> for Twhere
U: OverflowingFrom<T>,
impl<T, U> OverflowingInto<U> for Twhere
U: OverflowingFrom<T>,
fn overflowing_into(self) -> (U, bool)
Source§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more