@@ -25,10 +25,7 @@ pub fn unweave<const N: usize>(slice: &[f32]) -> [Box<[f32]>; N] {
25
25
. unwrap ( ) ;
26
26
27
27
slice. chunks_exact ( N ) . for_each ( |chunk| {
28
- chunk
29
- . iter ( )
30
- . zip ( result. iter_mut ( ) )
31
- . for_each ( |( v, arr) | arr. push ( * v) ) ;
28
+ chunk. iter ( ) . zip ( result. iter_mut ( ) ) . for_each ( |( v, arr) | arr. push ( * v) ) ;
32
29
} ) ;
33
30
34
31
result. map ( |v| v. into_boxed_slice ( ) )
@@ -703,12 +700,7 @@ pub fn convert_space_sliced(from: Space, to: Space, pixels: &mut [f32]) {
703
700
///
704
701
/// Returns 0 on success, 1 on invalid `from`, 2 on invalid `to`, 3 on invalid `pixels`
705
702
#[ no_mangle]
706
- pub extern "C" fn convert_space_ffi (
707
- from : * const c_char ,
708
- to : * const c_char ,
709
- pixels : * mut f32 ,
710
- len : usize ,
711
- ) -> i32 {
703
+ pub extern "C" fn convert_space_ffi ( from : * const c_char , to : * const c_char , pixels : * mut f32 , len : usize ) -> i32 {
712
704
let from = unsafe {
713
705
if from. is_null ( ) {
714
706
return 1 ;
@@ -754,13 +746,7 @@ pub extern "C" fn convert_space_ffi(
754
746
755
747
/// Same as `convert_space`, ignores the 4th value in `pixel`.
756
748
pub fn convert_space_alpha ( from : Space , to : Space , pixel : & mut [ f32 ; 4 ] ) {
757
- unsafe {
758
- convert_space (
759
- from,
760
- to,
761
- pixel. get_unchecked_mut ( 0 ..3 ) . try_into ( ) . unwrap_unchecked ( ) ,
762
- )
763
- }
749
+ unsafe { convert_space ( from, to, pixel. get_unchecked_mut ( 0 ..3 ) . try_into ( ) . unwrap_unchecked ( ) ) }
764
750
}
765
751
766
752
// ### Convert Space ### }}}
@@ -805,14 +791,10 @@ pub fn str2col(mut s: &str) -> Option<(Space, [f32; 3])> {
805
791
let seps = [ ',' , ':' , ';' ] ;
806
792
807
793
// Find Space at front then trim
808
- if let Some ( i) =
809
- s. find ( |c : char | c. is_whitespace ( ) || seps. contains ( & c) || [ '(' , '[' , '{' ] . contains ( & c) )
810
- {
794
+ if let Some ( i) = s. find ( |c : char | c. is_whitespace ( ) || seps. contains ( & c) || [ '(' , '[' , '{' ] . contains ( & c) ) {
811
795
if let Ok ( sp) = Space :: try_from ( & s[ ..i] ) {
812
796
space = sp;
813
- s = rm_paren (
814
- s[ i..] . trim_start_matches ( |c : char | c. is_whitespace ( ) || seps. contains ( & c) ) ,
815
- ) ;
797
+ s = rm_paren ( s[ i..] . trim_start_matches ( |c : char | c. is_whitespace ( ) || seps. contains ( & c) ) ) ;
816
798
}
817
799
}
818
800
@@ -1400,11 +1382,7 @@ mod tests {
1400
1382
pix_cmp ( & input, reference, epsilon, skips) ;
1401
1383
}
1402
1384
1403
- fn func_cmp (
1404
- input : & [ [ f32 ; 3 ] ] ,
1405
- reference : & [ [ f32 ; 3 ] ] ,
1406
- function : extern "C" fn ( & mut [ f32 ; 3 ] ) ,
1407
- ) {
1385
+ fn func_cmp ( input : & [ [ f32 ; 3 ] ] , reference : & [ [ f32 ; 3 ] ] , function : extern "C" fn ( & mut [ f32 ; 3 ] ) ) {
1408
1386
func_cmp_full ( input, reference, function, 1e-3 , & [ ] )
1409
1387
}
1410
1388
@@ -1421,20 +1399,8 @@ mod tests {
1421
1399
pix_cmp ( & input, reference, epsilon, skips)
1422
1400
}
1423
1401
1424
- fn conv_cmp (
1425
- input_space : Space ,
1426
- input : & [ [ f32 ; 3 ] ] ,
1427
- reference_space : Space ,
1428
- reference : & [ [ f32 ; 3 ] ] ,
1429
- ) {
1430
- conv_cmp_full (
1431
- input_space,
1432
- input,
1433
- reference_space,
1434
- reference,
1435
- 1e-2 ,
1436
- & [ 0 , 7 ] ,
1437
- )
1402
+ fn conv_cmp ( input_space : Space , input : & [ [ f32 ; 3 ] ] , reference_space : Space , reference : & [ [ f32 ; 3 ] ] ) {
1403
+ conv_cmp_full ( input_space, input, reference_space, reference, 1e-2 , & [ 0 , 7 ] )
1438
1404
}
1439
1405
// ### Comparison FNs ### }}}
1440
1406
@@ -1447,8 +1413,7 @@ mod tests {
1447
1413
#[ test]
1448
1414
fn irgb_from ( ) {
1449
1415
let mut srgb = irgb_to_srgb ( IRGB ) ;
1450
- srgb. iter_mut ( )
1451
- . for_each ( |c| * c = ( * c * 100.0 ) . round ( ) / 100.0 ) ;
1416
+ srgb. iter_mut ( ) . for_each ( |c| * c = ( * c * 100.0 ) . round ( ) / 100.0 ) ;
1452
1417
assert_eq ! ( [ 0.2 , 0.35 , 0.95 ] , srgb)
1453
1418
}
1454
1419
@@ -1638,11 +1603,7 @@ mod tests {
1638
1603
assert_eq ! ( deinterleaved[ 0 ] . len( ) , deinterleaved[ 1 ] . len( ) ) ;
1639
1604
assert_eq ! ( deinterleaved[ 0 ] . len( ) , deinterleaved[ 2 ] . len( ) ) ;
1640
1605
let chunked: Vec < [ f32 ; 3 ] > = ( 0 ..deinterleaved[ 0 ] . len ( ) ) . fold ( Vec :: new ( ) , |mut acc, it| {
1641
- acc. push ( [
1642
- deinterleaved[ 0 ] [ it] ,
1643
- deinterleaved[ 1 ] [ it] ,
1644
- deinterleaved[ 2 ] [ it] ,
1645
- ] ) ;
1606
+ acc. push ( [ deinterleaved[ 0 ] [ it] , deinterleaved[ 1 ] [ it] , deinterleaved[ 2 ] [ it] ] ) ;
1646
1607
acc
1647
1608
} ) ;
1648
1609
@@ -1719,10 +1680,7 @@ mod tests {
1719
1680
// ### Str2Col ### {{{
1720
1681
#[ test]
1721
1682
fn str2col_base ( ) {
1722
- assert_eq ! (
1723
- str2col( "0.2, 0.5, 0.6" ) ,
1724
- Some ( ( Space :: SRGB , [ 0.2 , 0.5 , 0.6 ] ) )
1725
- )
1683
+ assert_eq ! ( str2col( "0.2, 0.5, 0.6" ) , Some ( ( Space :: SRGB , [ 0.2 , 0.5 , 0.6 ] ) ) )
1726
1684
}
1727
1685
1728
1686
#[ test]
@@ -1732,10 +1690,7 @@ mod tests {
1732
1690
1733
1691
#[ test]
1734
1692
fn str2col_base_lop ( ) {
1735
- assert_eq ! (
1736
- str2col( "0.2,0.5, 0.6" ) ,
1737
- Some ( ( Space :: SRGB , [ 0.2 , 0.5 , 0.6 ] ) )
1738
- )
1693
+ assert_eq ! ( str2col( "0.2,0.5, 0.6" ) , Some ( ( Space :: SRGB , [ 0.2 , 0.5 , 0.6 ] ) ) )
1739
1694
}
1740
1695
1741
1696
#[ test]
@@ -1745,26 +1700,17 @@ mod tests {
1745
1700
1746
1701
#[ test]
1747
1702
fn str2col_base_bare_fat ( ) {
1748
- assert_eq ! (
1749
- str2col( " 0.2 0.5 0.6 " ) ,
1750
- Some ( ( Space :: SRGB , [ 0.2 , 0.5 , 0.6 ] ) )
1751
- )
1703
+ assert_eq ! ( str2col( " 0.2 0.5 0.6 " ) , Some ( ( Space :: SRGB , [ 0.2 , 0.5 , 0.6 ] ) ) )
1752
1704
}
1753
1705
1754
1706
#[ test]
1755
1707
fn str2col_base_paren ( ) {
1756
- assert_eq ! (
1757
- str2col( "(0.2 0.5 0.6)" ) ,
1758
- Some ( ( Space :: SRGB , [ 0.2 , 0.5 , 0.6 ] ) )
1759
- )
1708
+ assert_eq ! ( str2col( "(0.2 0.5 0.6)" ) , Some ( ( Space :: SRGB , [ 0.2 , 0.5 , 0.6 ] ) ) )
1760
1709
}
1761
1710
1762
1711
#[ test]
1763
1712
fn str2col_base_paren2 ( ) {
1764
- assert_eq ! (
1765
- str2col( "{ 0.2 : 0.5 : 0.6 }" ) ,
1766
- Some ( ( Space :: SRGB , [ 0.2 , 0.5 , 0.6 ] ) )
1767
- )
1713
+ assert_eq ! ( str2col( "{ 0.2 : 0.5 : 0.6 }" ) , Some ( ( Space :: SRGB , [ 0.2 , 0.5 , 0.6 ] ) ) )
1768
1714
}
1769
1715
1770
1716
#[ test]
@@ -1789,50 +1735,32 @@ mod tests {
1789
1735
1790
1736
#[ test]
1791
1737
fn str2col_lch ( ) {
1792
- assert_eq ! (
1793
- str2col( "lch(50, 30, 160)" ) ,
1794
- Some ( ( Space :: CIELCH , [ 50.0 , 30.0 , 160.0 ] ) )
1795
- )
1738
+ assert_eq ! ( str2col( "lch(50, 30, 160)" ) , Some ( ( Space :: CIELCH , [ 50.0 , 30.0 , 160.0 ] ) ) )
1796
1739
}
1797
1740
1798
1741
#[ test]
1799
1742
fn str2col_lch_space ( ) {
1800
- assert_eq ! (
1801
- str2col( "lch 50, 30, 160" ) ,
1802
- Some ( ( Space :: CIELCH , [ 50.0 , 30.0 , 160.0 ] ) )
1803
- )
1743
+ assert_eq ! ( str2col( "lch 50, 30, 160" ) , Some ( ( Space :: CIELCH , [ 50.0 , 30.0 , 160.0 ] ) ) )
1804
1744
}
1805
1745
1806
1746
#[ test]
1807
1747
fn str2col_lch_colon ( ) {
1808
- assert_eq ! (
1809
- str2col( "lch:50:30:160" ) ,
1810
- Some ( ( Space :: CIELCH , [ 50.0 , 30.0 , 160.0 ] ) )
1811
- )
1748
+ assert_eq ! ( str2col( "lch:50:30:160" ) , Some ( ( Space :: CIELCH , [ 50.0 , 30.0 , 160.0 ] ) ) )
1812
1749
}
1813
1750
1814
1751
#[ test]
1815
1752
fn str2col_lch_semicolon ( ) {
1816
- assert_eq ! (
1817
- str2col( "lch;50;30;160" ) ,
1818
- Some ( ( Space :: CIELCH , [ 50.0 , 30.0 , 160.0 ] ) )
1819
- )
1753
+ assert_eq ! ( str2col( "lch;50;30;160" ) , Some ( ( Space :: CIELCH , [ 50.0 , 30.0 , 160.0 ] ) ) )
1820
1754
}
1821
1755
1822
1756
#[ test]
1823
1757
fn str2col_lch_mixed ( ) {
1824
- assert_eq ! (
1825
- str2col( "lch; (50,30,160)" ) ,
1826
- Some ( ( Space :: CIELCH , [ 50.0 , 30.0 , 160.0 ] ) )
1827
- )
1758
+ assert_eq ! ( str2col( "lch; (50,30,160)" ) , Some ( ( Space :: CIELCH , [ 50.0 , 30.0 , 160.0 ] ) ) )
1828
1759
}
1829
1760
1830
1761
#[ test]
1831
1762
fn str2col_lch_mixed2 ( ) {
1832
- assert_eq ! (
1833
- str2col( "lch(50; 30; 160)" ) ,
1834
- Some ( ( Space :: CIELCH , [ 50.0 , 30.0 , 160.0 ] ) )
1835
- )
1763
+ assert_eq ! ( str2col( "lch(50; 30; 160)" ) , Some ( ( Space :: CIELCH , [ 50.0 , 30.0 , 160.0 ] ) ) )
1836
1764
}
1837
1765
1838
1766
#[ test]
@@ -1854,11 +1782,7 @@ mod tests {
1854
1782
str2col( "oklch 100% 100% 100%" ) ,
1855
1783
Some ( (
1856
1784
Space :: OKLCH ,
1857
- [
1858
- Space :: OKLCH . srgb_quant100( ) [ 0 ] ,
1859
- Space :: OKLCH . srgb_quant100( ) [ 1 ] ,
1860
- 360.0 ,
1861
- ]
1785
+ [ Space :: OKLCH . srgb_quant100( ) [ 0 ] , Space :: OKLCH . srgb_quant100( ) [ 1 ] , 360.0 ]
1862
1786
) )
1863
1787
)
1864
1788
}
@@ -1884,11 +1808,7 @@ mod tests {
1884
1808
str2col( "oklch 0% 0% 0%" ) ,
1885
1809
Some ( (
1886
1810
Space :: OKLCH ,
1887
- [
1888
- Space :: OKLCH . srgb_quant0( ) [ 0 ] ,
1889
- Space :: OKLCH . srgb_quant0( ) [ 1 ] ,
1890
- 0.0 ,
1891
- ]
1811
+ [ Space :: OKLCH . srgb_quant0( ) [ 0 ] , Space :: OKLCH . srgb_quant0( ) [ 1 ] , 0.0 ]
1892
1812
) )
1893
1813
)
1894
1814
}
@@ -1899,11 +1819,7 @@ mod tests {
1899
1819
str2col( "oklab 0.5 100.000% 0%" ) ,
1900
1820
Some ( (
1901
1821
Space :: OKLAB ,
1902
- [
1903
- 0.5 ,
1904
- Space :: OKLAB . srgb_quant100( ) [ 1 ] ,
1905
- Space :: OKLAB . srgb_quant0( ) [ 2 ] ,
1906
- ]
1822
+ [ 0.5 , Space :: OKLAB . srgb_quant100( ) [ 1 ] , Space :: OKLAB . srgb_quant0( ) [ 2 ] ]
1907
1823
) )
1908
1824
)
1909
1825
}
@@ -1925,8 +1841,7 @@ mod tests {
1925
1841
1926
1842
#[ test]
1927
1843
fn str2space_base ( ) {
1928
- let pix = str2space ( "oklch : 0.62792590, 0.25768453, 29.22319405" , Space :: SRGB )
1929
- . expect ( "STR2SPACE_BASE FAIL" ) ;
1844
+ let pix = str2space ( "oklch : 0.62792590, 0.25768453, 29.22319405" , Space :: SRGB ) . expect ( "STR2SPACE_BASE FAIL" ) ;
1930
1845
let reference = [ 1.00000000 , 0.00000000 , 0.00000000 ] ;
1931
1846
pix_cmp ( & [ pix] , & [ reference] , 1e-3 , & [ ] ) ;
1932
1847
}
0 commit comments