pub struct CargoLockParser;Expand description
Cargo.lock file parser.
Implements lock file parsing for Rust’s Cargo build system. Supports both project-level and workspace-level lock files.
§Lock File Location
The parser searches for Cargo.lock in the following order:
- Same directory as Cargo.toml
- Parent directories (up to 5 levels) for workspace root
§Examples
use deps_cargo::lockfile::CargoLockParser;
use deps_core::lockfile::LockFileProvider;
use tower_lsp_server::ls_types::Uri;
let parser = CargoLockParser;
let manifest_uri = Uri::from_file_path("/path/to/Cargo.toml").unwrap();
if let Some(lockfile_path) = parser.locate_lockfile(&manifest_uri) {
let resolved = parser.parse_lockfile(&lockfile_path).await?;
println!("Found {} resolved packages", resolved.len());
}Trait Implementations§
Source§impl LockFileProvider for CargoLockParser
impl LockFileProvider for CargoLockParser
Source§fn locate_lockfile(&self, manifest_uri: &Uri) -> Option<PathBuf>
fn locate_lockfile(&self, manifest_uri: &Uri) -> Option<PathBuf>
Locates the lock file for a given manifest URI. Read more
Source§fn parse_lockfile<'life0, 'life1, 'async_trait>(
&'life0 self,
lockfile_path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<ResolvedPackages>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn parse_lockfile<'life0, 'life1, 'async_trait>(
&'life0 self,
lockfile_path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<ResolvedPackages>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Parses a lock file and extracts resolved packages. Read more
Source§fn is_lockfile_stale(
&self,
lockfile_path: &Path,
last_modified: SystemTime,
) -> bool
fn is_lockfile_stale( &self, lockfile_path: &Path, last_modified: SystemTime, ) -> bool
Checks if lock file has been modified since last parse. Read more
Auto Trait Implementations§
impl Freeze for CargoLockParser
impl RefUnwindSafe for CargoLockParser
impl Send for CargoLockParser
impl Sync for CargoLockParser
impl Unpin for CargoLockParser
impl UnwindSafe for CargoLockParser
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
Mutably borrows from an owned value. Read more