pub struct GoSumParser;Expand description
go.sum file parser.
Implements lock file parsing for Go modules. Supports both project-level and workspace-level go.sum files.
§Lock File Location
The parser searches for go.sum in the following order:
- Same directory as go.mod
- Parent directories (up to 5 levels) for workspace root
§Examples
use deps_go::lockfile::GoSumParser;
use deps_core::lockfile::LockFileProvider;
use tower_lsp_server::ls_types::Uri;
let parser = GoSumParser;
let manifest_uri = Uri::from_file_path("/path/to/go.mod").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 GoSumParser
impl LockFileProvider for GoSumParser
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 GoSumParser
impl RefUnwindSafe for GoSumParser
impl Send for GoSumParser
impl Sync for GoSumParser
impl Unpin for GoSumParser
impl UnwindSafe for GoSumParser
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