@@ -14,7 +14,7 @@ impl<'a> AsciiStr<'a> {
1414 Self {
1515 ptr : s. as_ptr ( ) ,
1616 end : unsafe { s. as_ptr ( ) . add ( s. len ( ) ) } ,
17- _marker : PhantomData :: default ( ) ,
17+ _marker : PhantomData ,
1818 }
1919 }
2020
@@ -72,11 +72,11 @@ impl<'a> AsciiStr<'a> {
7272
7373 #[ inline]
7474 pub fn first ( & self ) -> Option < u8 > {
75- if !self . is_empty ( ) {
75+ if self . is_empty ( ) {
76+ None
77+ } else {
7678 // SAFETY: safe since `!self.is_empty()`
7779 Some ( unsafe { self . first_unchecked ( ) } )
78- } else {
79- None
8080 }
8181 }
8282
@@ -87,20 +87,12 @@ impl<'a> AsciiStr<'a> {
8787
8888 #[ inline]
8989 pub fn first_is2 ( & self , c1 : u8 , c2 : u8 ) -> bool {
90- if let Some ( c) = self . first ( ) {
91- c == c1 || c == c2
92- } else {
93- false
94- }
90+ self . first ( ) . map_or ( false , |c| c == c1 || c == c2)
9591 }
9692
9793 #[ inline]
9894 pub fn first_is_digit ( & self ) -> bool {
99- if let Some ( c) = self . first ( ) {
100- c. is_ascii_digit ( )
101- } else {
102- false
103- }
95+ self . first ( ) . map_or ( false , |c| c. is_ascii_digit ( ) )
10496 }
10597
10698 #[ inline]
@@ -116,13 +108,10 @@ impl<'a> AsciiStr<'a> {
116108
117109 #[ inline]
118110 pub fn try_read_digit ( & mut self ) -> Option < u8 > {
119- if let Some ( digit) = self . first_digit ( ) {
120- // SAFETY: Safe since `first_digit` means the buffer is not empty
121- unsafe { self . step ( ) } ;
122- Some ( digit)
123- } else {
124- None
125- }
111+ let digit = self . first_digit ( ) ?;
112+ // SAFETY: Safe since `first_digit` means the buffer is not empty
113+ unsafe { self . step ( ) } ;
114+ Some ( digit)
126115 }
127116
128117 #[ inline]
@@ -145,6 +134,7 @@ impl<'a> AsciiStr<'a> {
145134 ///
146135 /// Safe if `self.len() >= 8`
147136 #[ inline]
137+ #[ allow( clippy:: cast_ptr_alignment) ]
148138 pub unsafe fn read_u64_unchecked ( & self ) -> u64 {
149139 debug_assert ! ( self . len( ) >= 8 , "overflowing buffer: buffer is not 8 bytes long" ) ;
150140 let src = self . ptr as * const u64 ;
@@ -203,6 +193,7 @@ pub trait ByteSlice: AsRef<[u8]> + AsMut<[u8]> {
203193 ///
204194 /// Safe if `self.len() >= 8`.
205195 #[ inline]
196+ #[ allow( clippy:: cast_ptr_alignment) ]
206197 unsafe fn read_u64 ( & self ) -> u64 {
207198 debug_assert ! ( self . as_ref( ) . len( ) >= 8 ) ;
208199 let src = self . as_ref ( ) . as_ptr ( ) as * const u64 ;
@@ -214,6 +205,7 @@ pub trait ByteSlice: AsRef<[u8]> + AsMut<[u8]> {
214205 ///
215206 /// Safe if `self.len() >= 8`.
216207 #[ inline]
208+ #[ allow( clippy:: cast_ptr_alignment) ]
217209 unsafe fn write_u64 ( & mut self , value : u64 ) {
218210 debug_assert ! ( self . as_ref( ) . len( ) >= 8 ) ;
219211 let dst = self . as_mut ( ) . as_mut_ptr ( ) as * mut u64 ;
0 commit comments