pub trait KnowledgePack: Send + Sync {
// Required methods
fn manifest(&self) -> &dyn KnowledgePackManifest;
fn doc_content(
&self,
manifest: &KnowledgeDocManifest,
) -> Option<Cow<'_, str>>;
// Provided methods
fn list_docs(
&self,
filter: KnowledgeDocFilter,
) -> Vec<&KnowledgeDocManifest> { ... }
fn read_manifest(&self, path: &str) -> Option<&KnowledgeDocManifest> { ... }
fn read_doc(&self, path: &str) -> Option<KnowledgeDocRead> { ... }
fn search(
&self,
query: &str,
filter: KnowledgeDocFilter,
) -> Vec<KnowledgeDocSearchHit> { ... }
fn neighbors(
&self,
path: &str,
edge_type: Option<KnowledgeDocEdgeType>,
) -> Option<KnowledgeDocNeighbor> { ... }
}Expand description
Runtime access to a knowledge pack’s metadata and lazy document content.
Required Methods§
fn manifest(&self) -> &dyn KnowledgePackManifest
fn doc_content(&self, manifest: &KnowledgeDocManifest) -> Option<Cow<'_, str>>
Provided Methods§
fn list_docs(&self, filter: KnowledgeDocFilter) -> Vec<&KnowledgeDocManifest>
fn read_manifest(&self, path: &str) -> Option<&KnowledgeDocManifest>
fn read_doc(&self, path: &str) -> Option<KnowledgeDocRead>
fn search( &self, query: &str, filter: KnowledgeDocFilter, ) -> Vec<KnowledgeDocSearchHit>
fn neighbors( &self, path: &str, edge_type: Option<KnowledgeDocEdgeType>, ) -> Option<KnowledgeDocNeighbor>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".