@@ -145,9 +145,11 @@ pub enum ScopeNameValidateError {
145
145
}
146
146
147
147
/// A package name, like 'foo' or 'bar'. The name is not prefixed with an @.
148
- /// The name must be at least 2 character long, and at most 32 characters long.
148
+ /// The name must be at least 2 character long, and at most 58 characters long.
149
149
/// The name must only contain alphanumeric characters and hyphens.
150
150
/// The name must not start or end with a hyphen.
151
+ ///
152
+ /// 1 (@) + 20 (scope name) + 1 (/) + 58 (package name) = 80
151
153
#[ derive( Clone , PartialEq , Eq , Hash ) ]
152
154
pub struct PackageName ( String ) ;
153
155
@@ -157,7 +159,7 @@ impl PackageName {
157
159
return Err ( PackageNameValidateError :: TooShort ) ;
158
160
}
159
161
160
- if name. len ( ) > 32 {
162
+ if name. len ( ) > 58 {
161
163
return Err ( PackageNameValidateError :: TooLong ) ;
162
164
}
163
165
@@ -270,7 +272,7 @@ pub enum PackageNameValidateError {
270
272
#[ error( "package name must be at least 2 characters long" ) ]
271
273
TooShort ,
272
274
273
- #[ error( "package name must be at most 32 characters long" ) ]
275
+ #[ error( "package name must be at most 58 characters long" ) ]
274
276
TooLong ,
275
277
276
278
#[ error( "package name must contain only lowercase ascii alphanumeric characters and hyphens" ) ]
@@ -897,9 +899,10 @@ mod tests {
897
899
assert ! ( PackageName :: try_from( "f" ) . is_err( ) ) ;
898
900
assert ! ( PackageName :: try_from( "Foo" ) . is_err( ) ) ;
899
901
assert ! ( PackageName :: try_from( "oooF" ) . is_err( ) ) ;
900
- assert ! (
901
- PackageName :: try_from( "very-long-name-is-very-very-very-long" ) . is_err( )
902
- ) ;
902
+ assert ! ( PackageName :: try_from(
903
+ "very-long-name-is-very-very-very-very-very-very-very-very-long"
904
+ )
905
+ . is_err( ) ) ;
903
906
assert ! ( PackageName :: try_from( "foo_bar" ) . is_err( ) ) ;
904
907
assert ! ( PackageName :: try_from( "-foo" ) . is_err( ) ) ;
905
908
assert ! ( PackageName :: try_from( "foo-" ) . is_err( ) ) ;
0 commit comments