@@ -1112,6 +1112,7 @@ impl TomlTarget {
1112
1112
1113
1113
macro_rules! str_newtype {
1114
1114
( $name: ident) => {
1115
+ /// Verified string newtype
1115
1116
#[ derive( Serialize , Debug , Clone , PartialEq , Eq , PartialOrd , Ord , Hash ) ]
1116
1117
#[ serde( transparent) ]
1117
1118
pub struct $name<T : AsRef <str > = String >( T ) ;
@@ -1171,13 +1172,17 @@ macro_rules! str_newtype {
1171
1172
str_newtype ! ( PackageName ) ;
1172
1173
1173
1174
impl < T : AsRef < str > > PackageName < T > {
1175
+ /// Validated package name
1174
1176
pub fn new ( name : T ) -> Result < Self > {
1175
1177
restricted_names:: validate_package_name ( name. as_ref ( ) , "package name" , "" ) ?;
1176
1178
Ok ( Self ( name) )
1177
1179
}
1178
1180
}
1179
1181
1180
1182
impl PackageName {
1183
+ /// Coerce a value to be a validate package name
1184
+ ///
1185
+ /// Replaces invalid values with `placeholder`
1181
1186
pub fn sanitize ( name : impl AsRef < str > , placeholder : char ) -> Self {
1182
1187
PackageName ( restricted_names:: sanitize_package_name (
1183
1188
name. as_ref ( ) ,
@@ -1189,6 +1194,7 @@ impl PackageName {
1189
1194
str_newtype ! ( RegistryName ) ;
1190
1195
1191
1196
impl < T : AsRef < str > > RegistryName < T > {
1197
+ /// Validated registry name
1192
1198
pub fn new ( name : T ) -> Result < Self > {
1193
1199
restricted_names:: validate_package_name ( name. as_ref ( ) , "registry name" , "" ) ?;
1194
1200
Ok ( Self ( name) )
@@ -1198,6 +1204,7 @@ impl<T: AsRef<str>> RegistryName<T> {
1198
1204
str_newtype ! ( ProfileName ) ;
1199
1205
1200
1206
impl < T : AsRef < str > > ProfileName < T > {
1207
+ /// Validated profile name
1201
1208
pub fn new ( name : T ) -> Result < Self > {
1202
1209
restricted_names:: validate_profile_name ( name. as_ref ( ) ) ?;
1203
1210
Ok ( Self ( name) )
@@ -1207,6 +1214,7 @@ impl<T: AsRef<str>> ProfileName<T> {
1207
1214
str_newtype ! ( FeatureName ) ;
1208
1215
1209
1216
impl < T : AsRef < str > > FeatureName < T > {
1217
+ /// Validated feature name
1210
1218
pub fn new ( name : T ) -> Result < Self > {
1211
1219
restricted_names:: validate_feature_name ( name. as_ref ( ) ) ?;
1212
1220
Ok ( Self ( name) )
0 commit comments