pub struct EmbedSettings {Show 16 fields
pub max_tokens: u32,
pub min_tokens: u32,
pub overlap_tokens: u32,
pub context_lines: u32,
pub include_imports: bool,
pub include_top_level: bool,
pub token_model: String,
pub algorithm_version: u32,
pub scan_secrets: bool,
pub fail_on_secrets: bool,
pub redact_secrets: bool,
pub include_patterns: Vec<String>,
pub exclude_patterns: Vec<String>,
pub include_tests: bool,
pub enable_hierarchy: bool,
pub hierarchy_min_children: usize,
}Expand description
Settings that control chunk generation
These settings affect the output of chunk generation. Changing settings will result in different chunk IDs, so the manifest tracks settings to detect when a full rebuild is needed.
Fields§
§max_tokens: u32Maximum tokens per chunk (default: 1000 for code models)
min_tokens: u32Minimum tokens per chunk (smaller merged, default: 50)
overlap_tokens: u32Overlap tokens between sequential chunks (default: 100)
context_lines: u32Lines of context around symbols (default: 5)
include_imports: boolInclude import statements as separate chunks
include_top_level: boolInclude top-level code outside symbols
token_model: StringToken counting model
algorithm_version: u32Version of chunking algorithm (for compatibility)
scan_secrets: boolEnable secret scanning
fail_on_secrets: boolFail if secrets detected (CI mode)
redact_secrets: boolRedact detected secrets
include_patterns: Vec<String>Include glob patterns (e.g., [“*.rs”, “src/**”]) Note: skip_serializing_if removed for bincode compatibility (requires all fields)
exclude_patterns: Vec<String>Exclude glob patterns (e.g., [“tests/”, “.test.*”]) Note: skip_serializing_if removed for bincode compatibility (requires all fields)
include_tests: boolInclude test files (default: false)
enable_hierarchy: boolEnable hierarchical chunking for improved RAG recall
When enabled, generates summary chunks for container types (classes, structs) that list their children with signatures and brief descriptions. This enables RAG systems to retrieve both high-level overviews and specific implementations.
Recommended for object-oriented codebases (Java, Python, TypeScript).
hierarchy_min_children: usizeMinimum number of children required to generate a summary chunk (default: 2, only relevant when enable_hierarchy is true)
Implementations§
Source§impl EmbedSettings
impl EmbedSettings
Sourcepub const CURRENT_ALGORITHM_VERSION: u32 = 1u32
pub const CURRENT_ALGORITHM_VERSION: u32 = 1u32
Current algorithm version
Sourcepub const MAX_TOKENS_LIMIT: u32 = 100_000u32
pub const MAX_TOKENS_LIMIT: u32 = 100_000u32
Maximum tokens limit (DoS protection)
Sourcepub fn for_embedding_model(model: &str) -> Self
pub fn for_embedding_model(model: &str) -> Self
Get recommended settings for specific embedding model
Different embedding models have different optimal chunk sizes:
- voyage-code-2/3: 1500 tokens (large context window)
- cohere-embed-v3: 400 tokens (smaller model)
- openai-text-embedding-3: 800 tokens (balanced)
- sentence-transformers: 384 tokens (BERT-based)
Sourcepub fn validate(&self) -> Result<(), EmbedError>
pub fn validate(&self) -> Result<(), EmbedError>
Validate settings, return error if invalid
Trait Implementations§
Source§impl Clone for EmbedSettings
impl Clone for EmbedSettings
Source§fn clone(&self) -> EmbedSettings
fn clone(&self) -> EmbedSettings
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for EmbedSettings
impl Debug for EmbedSettings
Source§impl Default for EmbedSettings
impl Default for EmbedSettings
Source§impl<'de> Deserialize<'de> for EmbedSettings
impl<'de> Deserialize<'de> for EmbedSettings
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 EmbedSettings
impl PartialEq for EmbedSettings
Source§impl Serialize for EmbedSettings
impl Serialize for EmbedSettings
impl Eq for EmbedSettings
impl StructuralPartialEq for EmbedSettings
Auto Trait Implementations§
impl Freeze for EmbedSettings
impl RefUnwindSafe for EmbedSettings
impl Send for EmbedSettings
impl Sync for EmbedSettings
impl Unpin for EmbedSettings
impl UnwindSafe for EmbedSettings
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>
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);