@@ -1269,6 +1269,21 @@ where
1269
1269
} )
1270
1270
}
1271
1271
1272
+ fn parse_modern_alpha < ' i , ' t , P > (
1273
+ color_parser : & P ,
1274
+ arguments : & mut Parser < ' i , ' t > ,
1275
+ ) -> Result < Option < f32 > , ParseError < ' i , P :: Error > >
1276
+ where
1277
+ P : ColorParser < ' i > ,
1278
+ {
1279
+ if !arguments. is_exhausted ( ) {
1280
+ arguments. expect_delim ( '/' ) ?;
1281
+ parse_none_or ( arguments, |p| parse_alpha_component ( color_parser, p) )
1282
+ } else {
1283
+ Ok ( Some ( OPAQUE ) )
1284
+ }
1285
+ }
1286
+
1272
1287
#[ inline]
1273
1288
fn parse_rgb < ' i , ' t , P > (
1274
1289
color_parser : & P ,
@@ -1324,12 +1339,7 @@ where
1324
1339
color_parser. parse_number_or_percentage ( p)
1325
1340
} ) ?) ;
1326
1341
1327
- if !arguments. is_exhausted ( ) {
1328
- arguments. expect_delim ( '/' ) ?;
1329
- parse_none_or ( arguments, |p| parse_alpha_component ( color_parser, p) ) ?. unwrap_or ( 0.0 )
1330
- } else {
1331
- OPAQUE
1332
- }
1342
+ parse_modern_alpha ( color_parser, arguments) ?. unwrap_or ( 0.0 )
1333
1343
} ;
1334
1344
1335
1345
Ok ( P :: Output :: from_rgba ( red, green, blue, alpha) )
@@ -1364,12 +1374,7 @@ where
1364
1374
saturation = parse_none_or ( arguments, |p| color_parser. parse_percentage ( p) ) ?. unwrap_or ( 0.0 ) ;
1365
1375
lightness = parse_none_or ( arguments, |p| color_parser. parse_percentage ( p) ) ?. unwrap_or ( 0.0 ) ;
1366
1376
1367
- if !arguments. is_exhausted ( ) {
1368
- arguments. expect_delim ( '/' ) ?;
1369
- parse_none_or ( arguments, |p| parse_alpha_component ( color_parser, p) ) ?. unwrap_or ( 0.0 )
1370
- } else {
1371
- OPAQUE
1372
- }
1377
+ parse_modern_alpha ( color_parser, arguments) ?. unwrap_or ( 0.0 )
1373
1378
} ;
1374
1379
1375
1380
let hue = if let Some ( h) = maybe_hue {
@@ -1570,12 +1575,7 @@ where
1570
1575
let r2 = parse_none_or ( input, |p| f2 ( color_parser, p) ) ?;
1571
1576
let r3 = parse_none_or ( input, |p| f3 ( color_parser, p) ) ?;
1572
1577
1573
- let alpha = if !input. is_exhausted ( ) {
1574
- input. expect_delim ( '/' ) ?;
1575
- parse_none_or ( input, |p| parse_alpha_component ( color_parser, p) ) ?
1576
- } else {
1577
- Some ( OPAQUE )
1578
- } ;
1578
+ let alpha = parse_modern_alpha ( color_parser, input) ?;
1579
1579
1580
1580
Ok ( ( r1, r2, r3, alpha) )
1581
1581
}
0 commit comments