pub struct ParsedDependency {
pub name: String,
pub name_range: Range,
pub version_req: Option<String>,
pub version_range: Option<Range>,
pub features: Vec<String>,
pub features_range: Option<Range>,
pub source: DependencySource,
pub workspace_inherited: bool,
pub section: DependencySection,
}Expand description
Parsed dependency from Cargo.toml with position tracking.
Stores all information about a dependency declaration, including its name, version requirement, features, and source positions for LSP operations. Positions are critical for features like hover, completion, and inlay hints.
§Examples
use deps_cargo::types::{ParsedDependency, DependencySource, DependencySection};
use tower_lsp_server::ls_types::{Position, Range};
let dep = ParsedDependency {
name: "serde".into(),
name_range: Range::new(Position::new(5, 0), Position::new(5, 5)),
version_req: Some("1.0".into()),
version_range: Some(Range::new(Position::new(5, 9), Position::new(5, 14))),
features: vec!["derive".into()],
features_range: None,
source: DependencySource::Registry,
workspace_inherited: false,
section: DependencySection::Dependencies,
};
assert_eq!(dep.name, "serde");
assert!(matches!(dep.source, DependencySource::Registry));Fields§
§name: String§name_range: Range§version_req: Option<String>§version_range: Option<Range>§features: Vec<String>§features_range: Option<Range>§source: DependencySource§workspace_inherited: bool§section: DependencySectionTrait Implementations§
Source§impl Clone for ParsedDependency
impl Clone for ParsedDependency
Source§fn clone(&self) -> ParsedDependency
fn clone(&self) -> ParsedDependency
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ParsedDependency
impl Debug for ParsedDependency
Source§impl Dependency for ParsedDependency
impl Dependency for ParsedDependency
Source§fn name_range(&self) -> Range
fn name_range(&self) -> Range
LSP range of the dependency name
Source§fn version_requirement(&self) -> Option<&str>
fn version_requirement(&self) -> Option<&str>
Version requirement string (e.g., “^1.0”, “>=2.0”)
Source§fn version_range(&self) -> Option<Range>
fn version_range(&self) -> Option<Range>
LSP range of the version string
Source§fn source(&self) -> DependencySource
fn source(&self) -> DependencySource
Dependency source (registry, git, path)
Source§impl DependencyInfo for ParsedDependency
impl DependencyInfo for ParsedDependency
Source§fn name_range(&self) -> Range
fn name_range(&self) -> Range
LSP range of the dependency name in the source file.
Source§fn version_requirement(&self) -> Option<&str>
fn version_requirement(&self) -> Option<&str>
Version requirement string (e.g., “^1.0”, “~2.3.4”).
Source§fn version_range(&self) -> Option<Range>
fn version_range(&self) -> Option<Range>
LSP range of the version string (for inlay hints positioning).
Source§fn source(&self) -> DependencySource
fn source(&self) -> DependencySource
Dependency source (registry, git, path).
Source§impl PartialEq for ParsedDependency
impl PartialEq for ParsedDependency
impl Eq for ParsedDependency
impl StructuralPartialEq for ParsedDependency
Auto Trait Implementations§
impl Freeze for ParsedDependency
impl RefUnwindSafe for ParsedDependency
impl Send for ParsedDependency
impl Sync for ParsedDependency
impl Unpin for ParsedDependency
impl UnwindSafe for ParsedDependency
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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