File tree Expand file tree Collapse file tree 1 file changed +17
-4
lines changed Expand file tree Collapse file tree 1 file changed +17
-4
lines changed Original file line number Diff line number Diff line change @@ -127,9 +127,13 @@ pub fn parse_possibly_prefixed_tag_version(package_name: Option<&str>, tag_name:
127
127
}
128
128
129
129
pub fn parse_tag_version ( name : & BStr ) -> Option < Version > {
130
- name. find_byteset ( b"0123456789" )
131
- . and_then ( |pos| name[ pos..] . to_str ( ) . ok ( ) )
132
- . and_then ( |v| Version :: parse ( v) . ok ( ) )
130
+ let version = name
131
+ . strip_prefix ( b"vers" )
132
+ . or_else ( || name. strip_prefix ( b"v" ) )
133
+ . unwrap_or_else ( || name. as_bytes ( ) )
134
+ . to_str ( )
135
+ . ok ( ) ?;
136
+ Version :: parse ( version) . ok ( )
133
137
}
134
138
135
139
pub fn is_tag_name ( package_name : & str , tag_name : & git:: bstr:: BStr ) -> bool {
@@ -259,13 +263,22 @@ mod tests {
259
263
fn funky ( ) {
260
264
assert ! ( !is_tag_version( b"vHi.Ho.yada-anythingreally" . as_bstr( ) ) ) ;
261
265
}
266
+
267
+ #[ test]
268
+ fn prefixed ( ) {
269
+ assert ! ( !is_tag_version( b"cargo-v1.0.0" . as_bstr( ) ) ) ;
270
+ }
262
271
}
263
272
mod matches {
264
273
use git_repository:: bstr:: ByteSlice ;
265
274
275
+ #[ test]
276
+ fn no_prefix ( ) {
277
+ assert ! ( is_tag_version( b"0.0.1" . as_bstr( ) ) ) ;
278
+ }
279
+
266
280
#[ test]
267
281
fn custom_prefix ( ) {
268
- assert ! ( is_tag_version( b"x0.0.1" . as_bstr( ) ) ) ;
269
282
assert ! ( is_tag_version( b"vers0.0.1" . as_bstr( ) ) ) ;
270
283
}
271
284
You can’t perform that action at this time.
0 commit comments