@@ -1740,26 +1740,30 @@ mod impl_rkyv {
1740
1740
}
1741
1741
}
1742
1742
1743
+ #[ cfg( feature = "rkyv_ck" ) ]
1744
+ use super :: FloatIsNan ;
1745
+ #[ cfg( feature = "rkyv_ck" ) ]
1746
+ use core:: convert:: Infallible ;
1743
1747
#[ cfg( feature = "rkyv_ck" ) ]
1744
1748
use rkyv:: bytecheck:: CheckBytes ;
1745
1749
1746
1750
#[ cfg( feature = "rkyv_ck" ) ]
1747
- impl < C : ?Sized , T : CheckBytes < C > > CheckBytes < C > for OrderedFloat < T > {
1748
- type Error = T :: Error ;
1751
+ impl < C : ?Sized , T : Float + CheckBytes < C > > CheckBytes < C > for OrderedFloat < T > {
1752
+ type Error = Infallible ;
1749
1753
1750
1754
#[ inline]
1751
- unsafe fn check_bytes < ' a > ( value : * const Self , c : & mut C ) -> Result < & ' a Self , Self :: Error > {
1752
- T :: check_bytes ( value as * const T , c ) . map ( |_| & * value)
1755
+ unsafe fn check_bytes < ' a > ( value : * const Self , _ : & mut C ) -> Result < & ' a Self , Self :: Error > {
1756
+ Ok ( & * value)
1753
1757
}
1754
1758
}
1755
1759
1756
1760
#[ cfg( feature = "rkyv_ck" ) ]
1757
- impl < C : ?Sized , T : CheckBytes < C > > CheckBytes < C > for NotNan < T > {
1758
- type Error = T :: Error ;
1761
+ impl < C : ?Sized , T : Float + CheckBytes < C > > CheckBytes < C > for NotNan < T > {
1762
+ type Error = FloatIsNan ;
1759
1763
1760
1764
#[ inline]
1761
- unsafe fn check_bytes < ' a > ( value : * const Self , c : & mut C ) -> Result < & ' a Self , Self :: Error > {
1762
- T :: check_bytes ( value as * const T , c ) . map ( |_| & * value)
1765
+ unsafe fn check_bytes < ' a > ( value : * const Self , _ : & mut C ) -> Result < & ' a Self , Self :: Error > {
1766
+ Self :: new ( * ( value as * const T ) ) . map ( |_| & * value)
1763
1767
}
1764
1768
}
1765
1769
0 commit comments