Skip to main content

DependencyIndex

Struct DependencyIndex 

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

Global cross-project dependency index backed by SQLite.

§Thread safety

The underlying rusqlite::Connection is guarded by a Mutex so DependencyIndex is Send + Sync.

Implementations§

Source§

impl DependencyIndex

Source

pub fn open(path: &Path) -> Result<Self, DependencyIndexError>

Open or create the dependency index at the given path.

Creates parent directories if they do not exist, opens the database in WAL mode, and initialises the schema.

§Errors

Returns DependencyIndexError::Io if the parent directory cannot be created, or DependencyIndexError::Sqlite if the database cannot be opened or the schema cannot be initialised.

Source

pub fn index_project( &self, project_root: &Path, ) -> Result<usize, DependencyIndexError>

Parse a project manifest file and index its dependencies.

Detects the manifest type from files present in project_root and inserts all discovered dependencies. Returns the count of rows inserted.

§Errors

Returns DependencyIndexError::Io if the manifest cannot be read, or DependencyIndexError::Parse if the manifest is malformed, or DependencyIndexError::Sqlite if a database write fails.

Source

pub fn projects_using( &self, dependency: &str, ) -> Result<Vec<DependencyEntry>, DependencyIndexError>

Query: which projects depend on the given library?

§Errors

Returns DependencyIndexError::Sqlite if the query fails.

Source

pub fn dependencies_of( &self, project_path: &str, ) -> Result<Vec<DependencyEntry>, DependencyIndexError>

Query: what does the given project depend on?

§Errors

Returns DependencyIndexError::Sqlite if the query fails.

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> 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> 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<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