@@ -218,7 +218,7 @@ impl Specifier {
218218 }
219219 }
220220
221- fn get_node_version ( & self ) -> Option < & Version > {
221+ pub fn get_node_version ( & self ) -> Option < & Version > {
222222 match self {
223223 Self :: Alias ( inner) => inner. semver . as_ref ( ) . map ( |semver| & semver. node_version ) ,
224224 Self :: BasicSemver ( inner) => Some ( & inner. node_version ) ,
@@ -233,20 +233,38 @@ impl Specifier {
233233 self . get_semver ( ) . map ( |semver| & semver. range_variant )
234234 }
235235
236- /// Replace a new instance with the given semver range applied to it when it
237- /// is possible to do so, otherwise the same instance is returned
236+ /// Return a new `Specifier` with the given semver range applied to it when it
237+ /// is possible to do so, otherwise the same `Specifier` is returned
238238 pub fn with_range ( self , range : & SemverRange ) -> Self {
239239 match self {
240- Self :: Alias ( inner ) => Self :: Alias ( inner . with_range ( range) ) ,
241- Self :: BasicSemver ( inner ) => Self :: BasicSemver ( inner . with_range ( range) ) ,
242- Self :: ComplexSemver ( inner ) => Self :: ComplexSemver ( inner . with_range ( range) ) ,
243- Self :: File ( inner ) => Self :: File ( inner . with_range ( range) ) ,
244- Self :: Git ( inner ) => Self :: Git ( inner . with_range ( range) ) ,
240+ Self :: Alias ( s ) => Self :: Alias ( s . with_range ( range) ) ,
241+ Self :: BasicSemver ( s ) => Self :: BasicSemver ( s . with_range ( range) ) ,
242+ Self :: ComplexSemver ( s ) => Self :: ComplexSemver ( s . with_range ( range) ) ,
243+ Self :: File ( s ) => Self :: File ( s . with_range ( range) ) ,
244+ Self :: Git ( s ) => Self :: Git ( s . with_range ( range) ) ,
245245 Self :: None => Self :: None ,
246- Self :: Tag ( inner) => Self :: Tag ( inner. with_range ( range) ) ,
247- Self :: Unsupported ( inner) => Self :: Unsupported ( inner. with_range ( range) ) ,
248- Self :: Url ( inner) => Self :: Url ( inner. with_range ( range) ) ,
249- Self :: WorkspaceProtocol ( inner) => Self :: WorkspaceProtocol ( inner. with_range ( range) ) ,
246+ Self :: Tag ( s) => Self :: Tag ( s. with_range ( range) ) ,
247+ Self :: Unsupported ( s) => Self :: Unsupported ( s. with_range ( range) ) ,
248+ Self :: Url ( s) => Self :: Url ( s. with_range ( range) ) ,
249+ Self :: WorkspaceProtocol ( s) => Self :: WorkspaceProtocol ( s. with_range ( range) ) ,
250+ }
251+ }
252+
253+ /// Return a new `Specifier` with the given semver version number applied to
254+ /// it when it is possible to do so, otherwise the same `Specifier` is
255+ /// returned. The range is also changed.
256+ pub fn with_semver ( self , semver : & BasicSemver ) -> Self {
257+ match self {
258+ Self :: Alias ( s) => Self :: Alias ( s. with_semver ( semver) ) ,
259+ Self :: BasicSemver ( s) => Self :: BasicSemver ( s. with_semver ( semver) ) ,
260+ Self :: ComplexSemver ( s) => Self :: ComplexSemver ( s. with_semver ( semver) ) ,
261+ Self :: File ( s) => Self :: File ( s. with_semver ( semver) ) ,
262+ Self :: Git ( s) => Self :: Git ( s. with_semver ( semver) ) ,
263+ Self :: None => Self :: None ,
264+ Self :: Tag ( s) => Self :: Tag ( s. with_semver ( semver) ) ,
265+ Self :: Unsupported ( s) => Self :: Unsupported ( s. with_semver ( semver) ) ,
266+ Self :: Url ( s) => Self :: Url ( s. with_semver ( semver) ) ,
267+ Self :: WorkspaceProtocol ( s) => Self :: WorkspaceProtocol ( s. with_semver ( semver) ) ,
250268 }
251269 }
252270
0 commit comments