pub struct ProjectBuilder { /* private fields */ }Expand description
Builder for assembling a multi-file project into a unified schema.
Files are added one at a time (or by scanning a directory), then assembled
into a ProjectSchema via coproduct construction.
Implementations§
Source§impl ProjectBuilder
impl ProjectBuilder
Sourcepub fn with_registry(registry: ParserRegistry) -> Self
pub fn with_registry(registry: ParserRegistry) -> Self
Create a new project builder with a custom parser registry.
Sourcepub fn with_config(
cfg: &ProjectConfig,
base_dir: &Path,
) -> Result<Self, ProjectError>
pub fn with_config( cfg: &ProjectConfig, base_dir: &Path, ) -> Result<Self, ProjectError>
Create a project builder configured from a ProjectConfig.
Compiles exclude patterns and builds the per-package protocol override map.
§Errors
Returns ProjectError::InvalidPattern if a glob pattern is malformed.
Sourcepub fn with_config_and_cache(
cfg: &ProjectConfig,
base_dir: &Path,
file_cache: FileCache,
) -> Result<Self, ProjectError>
pub fn with_config_and_cache( cfg: &ProjectConfig, base_dir: &Path, file_cache: FileCache, ) -> Result<Self, ProjectError>
Create a project builder configured from a ProjectConfig with an
incremental parsing cache.
Behaves like with_config but attaches a
FileCache so that unchanged files are not
re-parsed.
§Errors
Returns ProjectError::InvalidPattern if a glob pattern is malformed.
Sourcepub const fn take_cache(&mut self) -> Option<FileCache>
pub const fn take_cache(&mut self) -> Option<FileCache>
Extract the cache from the builder (e.g., for saving after build).
Returns None if no cache was attached.
Sourcepub fn add_file(
&mut self,
path: &Path,
content: &[u8],
) -> Result<(), ProjectError>
pub fn add_file( &mut self, path: &Path, content: &[u8], ) -> Result<(), ProjectError>
Add a single file to the project.
The file’s language is detected from its path. If the language is recognized, the file is parsed via tree-sitter. Otherwise, it is parsed as a raw file (text or binary).
If a cache is attached and the file’s mtime and size match the cached entry, the cached schema is used without re-parsing.
§Errors
Returns ProjectError::ParseFailed if parsing fails.
Sourcepub fn add_directory(&mut self, dir: &Path) -> Result<(), ProjectError>
pub fn add_directory(&mut self, dir: &Path) -> Result<(), ProjectError>
Add all files in a directory (recursively).
Skips hidden directories (starting with .) and common build/output
directories (target, node_modules, __pycache__, .git, etc.).
§Errors
Returns ProjectError if any file fails to read or parse.
Sourcepub fn file_count(&self) -> usize
pub fn file_count(&self) -> usize
Get the number of files added to the builder.
Sourcepub const fn file_schemas(&self) -> &FxHashMap<PathBuf, Schema>
pub const fn file_schemas(&self) -> &FxHashMap<PathBuf, Schema>
Access the per-file parsed schemas without consuming the builder.
Sourcepub const fn protocol_map_ref(&self) -> &FxHashMap<PathBuf, String>
pub const fn protocol_map_ref(&self) -> &FxHashMap<PathBuf, String>
Access the per-file protocol names without consuming the builder.
Sourcepub fn build_tree<S>(
self,
store: &mut S,
) -> Result<ProjectSchemaTree, ProjectError>where
S: Store,
pub fn build_tree<S>(
self,
store: &mut S,
) -> Result<ProjectSchemaTree, ProjectError>where
S: Store,
Build the project as a Merkle tree of per-file schemas rather than a flat coproduct schema.
The tree is stored incrementally in store; see
build_project_tree for the standalone function form.
§Errors
Returns ProjectError::CoproductFailed if the underlying
store rejects an object write.
Sourcepub fn build(self) -> Result<ProjectSchema, ProjectError>
pub fn build(self) -> Result<ProjectSchema, ProjectError>
Build the project schema by constructing the coproduct of all file schemas.
Each file’s vertices are prefixed with the file path to ensure uniqueness in the coproduct. Edges within a file retain their local structure.
§Errors
Returns ProjectError::CoproductFailed if construction fails.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ProjectBuilder
impl !RefUnwindSafe for ProjectBuilder
impl Send for ProjectBuilder
impl Sync for ProjectBuilder
impl Unpin for ProjectBuilder
impl UnsafeUnpin for ProjectBuilder
impl !UnwindSafe for ProjectBuilder
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<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