Skip to main content

RustProject

Struct RustProject 

Source
pub struct RustProject { /* private fields */ }
Expand description

A factual Cargo project index rooted at one canonical repository root.

Views are borrowed and deterministically ordered by stable structural keys, so reordering filesystem enumeration cannot change what a caller reads.

Implementations§

Source§

impl RustProject

Source

pub fn load( root: &Path, limits: ResolutionLimits, ) -> Result<Self, RustProjectError>

Read every manifest beneath root and index the project it declares.

Reads Cargo.toml files and directory listings only: no Rust source is opened and Cargo is never invoked.

Source

pub fn root(&self) -> &Path

The canonical repository root this project was loaded from.

Source

pub fn limits(&self) -> ResolutionLimits

The limits this project was loaded under and retains for snapshots.

Source

pub fn packages(&self) -> &[RustPackage]

Every package in the project, workspace members and eligible in-root path dependencies alike, ordered by manifest path.

Source

pub fn workspace_members(&self) -> impl Iterator<Item = &RustPackage>

Only the packages the workspace declares as members.

Source

pub fn package(&self, id: PackageId) -> Option<&RustPackage>

The package an identity issued by this project selects.

Source

pub fn targets(&self) -> &[RustTarget]

Every target in the project, ordered by package, kind, then name.

Source

pub fn target(&self, id: TargetId) -> Option<&RustTarget>

The target an identity issued by this project selects.

Source

pub fn package_targets( &self, package: PackageId, ) -> impl Iterator<Item = &RustTarget>

Every target one package declares.

Source

pub fn dependencies(&self) -> &[RustDependency]

Every dependency edge in the project, ordered by package, kind, then local dependency name.

Source

pub fn snapshot_target( &self, target: TargetId, ) -> Result<RustTargetSnapshot, RustSnapshotError>

Snapshot only this target’s Rust module closure.

The target’s authority is validated before any source is read, and the closure is all-or-error: a caller receives every reachable source or a typed failure, never a partial set.

Source

pub fn snapshot_package_primary_targets( &self, package: PackageId, ) -> Result<RustPackageSnapshot, RustPackageSnapshotError>

Snapshot every library, binary, and build-script target of one package.

Target closures remain separate views, but all of them share one source store so an overlapping source is read, hashed, and parsed once. Any incomplete target refuses the entire package snapshot.

Source

pub fn snapshot_resolution( &self, target: TargetId, ) -> Result<RustResolutionSnapshot, RustSnapshotError>

Snapshot this target together with its same-package library, when Cargo exposes one, and the in-repository dependency libraries its namespace resolves names against.

Source

pub fn package_dependencies( &self, package: PackageId, ) -> impl Iterator<Item = &RustDependency>

Every dependency edge one package declares.

Trait Implementations§

Source§

impl Debug for RustProject

Source§

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

Formats the value using the given formatter. 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, R> CollectAndApply<T, R> for T

Source§

fn collect_and_apply<I, F>(iter: I, f: F) -> R
where I: Iterator<Item = T>, F: FnOnce(&[T]) -> R,

Equivalent to f(&iter.collect::<Vec<_>>()).

Source§

type Output = R

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoBox<dyn Any + Send> for T
where T: Any + Send,

Source§

fn into_box(self) -> Box<dyn Any + Send>

Convert self into the appropriate boxed form.
Source§

impl<T> IntoBox<dyn Any + Sync + Send> for T
where T: Any + Send + Sync,

Source§

fn into_box(self) -> Box<dyn Any + Sync + Send>

Convert self into the appropriate boxed form.
Source§

impl<T> IntoBox<dyn Any> for T
where T: Any,

Source§

fn into_box(self) -> Box<dyn Any>

Convert self into the appropriate boxed form.
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> Lookup<T> for T

Source§

fn into_owned(self) -> T

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, 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<I, T, U> Upcast<I, U> for T
where U: UpcastFrom<I, T>,

Source§

fn upcast(self, interner: I) -> U

Source§

impl<I, T> UpcastFrom<I, T> for T

Source§

fn upcast_from(from: T, _tcx: I) -> T

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more