Skip to main content

PackBuilder

Struct PackBuilder 

Source
pub struct PackBuilder { /* private fields */ }

Implementations§

Source§

impl PackBuilder

Source

pub fn new() -> Self

Source

pub fn preset(self, p: Preset) -> Self

Source

pub fn budget(self, b: Budget) -> Self

Source

pub fn max_tokens(self, n: usize) -> Self

Source

pub fn reserve_tokens(self, n: usize) -> Self

Source

pub fn tokenizer(self, t: Tokenizer) -> Self

Source

pub fn scrub(self, on: bool) -> Self

Source

pub fn expand_mode(self, m: ExpandMode) -> Self

Source

pub fn include_path(self, path: impl Into<String>) -> Self

Source

pub fn exclude_path(self, path: impl Into<String>) -> Self

Source

pub fn project_root(self, p: impl Into<PathBuf>) -> Self

Source

pub fn stdin_prompt(self, prompt: impl Into<String>) -> Self

Source

pub fn files_from(self, paths: Vec<PathBuf>) -> Self

Repo-relative paths whose full contents should be embedded in a dedicated “📂 Scoped Files” section. Designed for the cargo impact --context | cargo context --files-from - workflow: the upstream tool tells us which files matter, and we include them verbatim (subject to scrubbing and budget).

These paths also join the diff-changed set when the related-tests collector runs, so a test that references a scoped file by stem gets surfaced even when the scoped file isn’t in git diff.

Source

pub fn impact_findings(self, findings: Vec<Finding>) -> Self

Findings pulled from a cargo-impact --format=json envelope.

Differs from Self::files_from in that each finding carries metadata (id, kind, confidence, severity, tier, evidence, suggested action) that can drive richer rendering:

  • In the default aggregated mode, the list is rendered as a single “📂 Scoped Files” section with files ordered by the caller-supplied order (typically confidence-descending) and per-file headers that surface confidence/severity/tier.
  • When Self::impact_per_finding is set, each finding becomes its own “📂 Impact: …” section — useful when an agent wants to iterate through findings one at a time.

Finding paths join the diff-changed set for related-tests linkage, mirroring files_from.

Source

pub fn impact_per_finding(self, on: bool) -> Self

Emit one pack section per finding instead of one aggregated section. No-op when impact_findings is empty.

Source

pub fn build(self) -> Result<Pack>

Assemble the pack.

Flow:

  1. Collect candidate sections per preset (collectors that fail for expected reasons return None — a missing git repo or Cargo.toml never aborts the build).
  2. Run the scrubber over each section’s content. Scrubbing may shrink or grow content, so we re-count tokens after it.
  3. Reconcile with the token budget using the configured strategy. Dropped section names are surfaced on Pack.dropped.

Trait Implementations§

Source§

impl Clone for PackBuilder

Source§

fn clone(&self) -> PackBuilder

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for PackBuilder

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for PackBuilder

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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 more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V