pub struct ChunkContext {Show 22 fields
pub docstring: Option<String>,
pub comments: Vec<String>,
pub signature: Option<String>,
pub calls: Vec<String>,
pub called_by: Vec<String>,
pub imports: Vec<String>,
pub tags: Vec<String>,
pub keywords: Vec<String>,
pub context_prefix: Option<String>,
pub summary: Option<String>,
pub qualified_calls: Vec<String>,
pub unresolved_calls: Vec<String>,
pub identifiers: Option<String>,
pub type_signature: Option<String>,
pub parameter_types: Vec<String>,
pub return_type: Option<String>,
pub error_types: Vec<String>,
pub lines_of_code: u32,
pub max_nesting_depth: u32,
pub git: Option<GitMetadata>,
pub complexity_score: Option<u32>,
pub dependents_count: Option<u32>,
}Expand description
Context information extracted from the chunk for better retrieval
This metadata improves RAG recall by providing natural language descriptions, signatures for type matching, and relationship information.
Fields§
§docstring: Option<String>Extracted docstring (for natural language retrieval)
comments: Vec<String>Extracted comments within the chunk
signature: Option<String>Function/class signature (always included, even in split parts)
calls: Vec<String>Symbols this chunk calls
called_by: Vec<String>Symbols that call this chunk
imports: Vec<String>Import dependencies
Auto-generated semantic tags
keywords: Vec<String>Top keywords extracted from chunk content for BM25/sparse retrieval. Identifiers are split on non-alphanumeric boundaries, filtered for stopwords, and ranked by frequency (top 10).
context_prefix: Option<String>Brief description of where the chunk fits in the codebase. Generated from file path + parent context, e.g. “From src/auth.rs, in class AuthService:”
summary: Option<String>Natural language summary for improved semantic search. Generated from docstring (first line) or heuristic template.
qualified_calls: Vec<String>Fully qualified calls resolved via import scope. Each entry is a qualified name like “crate::auth::jwt::verify_token” or “auth.jwt::verify”. Populated by the import resolver for Rust, TypeScript, and Python files.
unresolved_calls: Vec<String>Calls that could not be resolved via imports or same-file symbols. These are raw call names that had no matching import or local definition.
identifiers: Option<String>Space-separated string of all unique identifiers extracted from the chunk, optimized for BM25/sparse text indexing. Includes both original identifiers and their camelCase/snake_case split parts, all lowercased. Language keywords and single-character identifiers are filtered out.
type_signature: Option<String>Full type signature: “fn verify_token(token: &str) -> Result<Claims, AuthError>”
parameter_types: Vec<String>Individual parameter types: [“i32”, “&str”]
return_type: Option<String>Return type: “Result<Claims, AuthError>”
error_types: Vec<String>Error/exception types: [“AuthError”]
lines_of_code: u32Lines of code in this chunk (excluding blank lines and comments) Useful for filtering out trivial one-liners vs substantial implementations
max_nesting_depth: u32Maximum nesting depth (control flow, blocks) Higher values indicate more complex logic; useful for prioritizing review
git: Option<GitMetadata>Git version control metadata (change frequency, authors, last modified)
Only populated when EmbedSettings::git_metadata is enabled
complexity_score: Option<u32>Cyclomatic complexity score (1 + number of branch points) Computed via Tree-sitter AST analysis of the chunk’s source code. A score of 1 means linear code with no branching. Higher scores indicate more complex control flow; useful for filtering and prioritizing code review in RAG applications.
dependents_count: Option<u32>Number of symbols that call/depend on this chunk Derived from the bidirectional call graph (called_by.len())
Trait Implementations§
Source§impl Clone for ChunkContext
impl Clone for ChunkContext
Source§fn clone(&self) -> ChunkContext
fn clone(&self) -> ChunkContext
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ChunkContext
impl Debug for ChunkContext
Source§impl Default for ChunkContext
impl Default for ChunkContext
Source§fn default() -> ChunkContext
fn default() -> ChunkContext
Source§impl<'de> Deserialize<'de> for ChunkContext
impl<'de> Deserialize<'de> for ChunkContext
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for ChunkContext
impl PartialEq for ChunkContext
Source§impl Serialize for ChunkContext
impl Serialize for ChunkContext
impl Eq for ChunkContext
impl StructuralPartialEq for ChunkContext
Auto Trait Implementations§
impl Freeze for ChunkContext
impl RefUnwindSafe for ChunkContext
impl Send for ChunkContext
impl Sync for ChunkContext
impl Unpin for ChunkContext
impl UnsafeUnpin for ChunkContext
impl UnwindSafe for ChunkContext
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the foreground set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red() and
green(), which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg():
use yansi::{Paint, Color};
painted.fg(Color::White);Set foreground color to white using white().
use yansi::Paint;
painted.white();Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the background set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red() and
on_green(), which have the same functionality but
are pithier.
§Example
Set background color to red using fg():
use yansi::{Paint, Color};
painted.bg(Color::Red);Set background color to red using on_red().
use yansi::Paint;
painted.on_red();Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute value.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold() and
underline(), which have the same functionality
but are pithier.
§Example
Make text bold using attr():
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);Make text bold using using bold().
use yansi::Paint;
painted.bold();Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi Quirk value.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask() and
wrap(), which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk():
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);Enable wrapping using wrap().
use yansi::Paint;
painted.wrap();Source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
fn clear(&self) -> Painted<&T>
renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
Source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted only when both stdout and stderr are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);