Struct ParsedDependency
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 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, DependencySection};
use deps_cargo::DependencySource;
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,
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§section: DependencySectionTrait Implementations§
§impl Clone for ParsedDependency
impl Clone for ParsedDependency
§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 more§impl Debug for ParsedDependency
impl Debug for ParsedDependency
§impl Dependency for ParsedDependency
impl Dependency for ParsedDependency
§fn name_range(&self) -> Range
fn name_range(&self) -> Range
LSP range of the dependency name
§fn version_requirement(&self) -> Option<&str>
fn version_requirement(&self) -> Option<&str>
Version requirement string (e.g., “^1.0”, “>=2.0”)
§fn version_range(&self) -> Option<Range>
fn version_range(&self) -> Option<Range>
LSP range of the version string
§fn source(&self) -> DependencySource
fn source(&self) -> DependencySource
Dependency source (registry, git, path)
§impl DependencyInfo for ParsedDependency
impl DependencyInfo for ParsedDependency
§fn name_range(&self) -> Range
fn name_range(&self) -> Range
LSP range of the dependency name in the source file.
§fn version_requirement(&self) -> Option<&str>
fn version_requirement(&self) -> Option<&str>
Version requirement string (e.g., “^1.0”, “~2.3.4”).
§fn version_range(&self) -> Option<Range>
fn version_range(&self) -> Option<Range>
LSP range of the version string (for inlay hints positioning).
§fn source(&self) -> DependencySource
fn source(&self) -> DependencySource
Dependency source (registry, git, path).
§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