@@ -37,8 +37,13 @@ impl BuildableSource<'_> {
37
37
match self {
38
38
Self :: Dist ( SourceDist :: Registry ( dist) ) => Some ( & dist. version ) ,
39
39
Self :: Dist ( SourceDist :: Path ( dist) ) => dist. version . as_ref ( ) ,
40
- Self :: Dist ( _) => None ,
41
- Self :: Url ( _) => None ,
40
+ Self :: Dist ( SourceDist :: Directory ( dist) ) => dist. version . as_ref ( ) ,
41
+ Self :: Dist ( SourceDist :: Git ( dist) ) => dist. version . as_ref ( ) ,
42
+ Self :: Dist ( SourceDist :: DirectUrl ( dist) ) => dist. version . as_ref ( ) ,
43
+ Self :: Url ( SourceUrl :: Git ( url) ) => url. version ,
44
+ Self :: Url ( SourceUrl :: Direct ( url) ) => url. version ,
45
+ Self :: Url ( SourceUrl :: Path ( url) ) => url. version ,
46
+ Self :: Url ( SourceUrl :: Directory ( url) ) => url. version ,
42
47
}
43
48
}
44
49
@@ -132,6 +137,7 @@ impl std::fmt::Display for SourceUrl<'_> {
132
137
#[ derive( Debug , Clone ) ]
133
138
pub struct DirectSourceUrl < ' a > {
134
139
pub url : & ' a Url ,
140
+ pub version : Option < & ' a Version > ,
135
141
pub subdirectory : Option < & ' a Path > ,
136
142
pub ext : SourceDistExtension ,
137
143
}
@@ -146,6 +152,7 @@ impl std::fmt::Display for DirectSourceUrl<'_> {
146
152
pub struct GitSourceUrl < ' a > {
147
153
/// The URL with the revision and subdirectory fragment.
148
154
pub url : & ' a VerbatimUrl ,
155
+ pub version : Option < & ' a Version > ,
149
156
pub git : & ' a GitUrl ,
150
157
/// The URL without the revision and subdirectory fragment.
151
158
pub subdirectory : Option < & ' a Path > ,
@@ -161,6 +168,7 @@ impl<'a> From<&'a GitSourceDist> for GitSourceUrl<'a> {
161
168
fn from ( dist : & ' a GitSourceDist ) -> Self {
162
169
Self {
163
170
url : & dist. url ,
171
+ version : dist. version . as_ref ( ) ,
164
172
git : & dist. git ,
165
173
subdirectory : dist. subdirectory . as_deref ( ) ,
166
174
}
@@ -170,6 +178,7 @@ impl<'a> From<&'a GitSourceDist> for GitSourceUrl<'a> {
170
178
#[ derive( Debug , Clone ) ]
171
179
pub struct PathSourceUrl < ' a > {
172
180
pub url : & ' a Url ,
181
+ pub version : Option < & ' a Version > ,
173
182
pub path : Cow < ' a , Path > ,
174
183
pub ext : SourceDistExtension ,
175
184
}
@@ -184,6 +193,7 @@ impl<'a> From<&'a PathSourceDist> for PathSourceUrl<'a> {
184
193
fn from ( dist : & ' a PathSourceDist ) -> Self {
185
194
Self {
186
195
url : & dist. url ,
196
+ version : dist. version . as_ref ( ) ,
187
197
path : Cow :: Borrowed ( & dist. install_path ) ,
188
198
ext : dist. ext ,
189
199
}
@@ -193,6 +203,7 @@ impl<'a> From<&'a PathSourceDist> for PathSourceUrl<'a> {
193
203
#[ derive( Debug , Clone ) ]
194
204
pub struct DirectorySourceUrl < ' a > {
195
205
pub url : & ' a Url ,
206
+ pub version : Option < & ' a Version > ,
196
207
pub install_path : Cow < ' a , Path > ,
197
208
pub editable : bool ,
198
209
}
@@ -207,6 +218,7 @@ impl<'a> From<&'a DirectorySourceDist> for DirectorySourceUrl<'a> {
207
218
fn from ( dist : & ' a DirectorySourceDist ) -> Self {
208
219
Self {
209
220
url : & dist. url ,
221
+ version : dist. version . as_ref ( ) ,
210
222
install_path : Cow :: Borrowed ( & dist. install_path ) ,
211
223
editable : dist. editable ,
212
224
}
0 commit comments