Skip to content

Commit 77d5a64

Browse files
committed
clippy, type conversion explicit
1 parent a18cd3c commit 77d5a64

File tree

9 files changed

+37
-26
lines changed

9 files changed

+37
-26
lines changed

sqlx-core/src/mssql/protocol/pre_login.rs

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -135,8 +135,8 @@ impl Encode<'_> for PreLogin {
135135
// Calculate the length of the option offset block. Each block is 5 bytes and it ends in
136136
// a 1 byte terminator.
137137
let len_offsets = (num_options * 5) + 1;
138-
let mut offsets = buf.len() as usize;
139-
let mut offset = len_offsets as u16;
138+
let mut offsets = buf.len();
139+
let mut offset = u16::try_from(len_offsets).unwrap();
140140

141141
// Reserve a chunk for the offset block and set the final terminator
142142
buf.resize(buf.len() + len_offsets, 0);
@@ -151,7 +151,12 @@ impl Encode<'_> for PreLogin {
151151
buf.push(u8::from(self.encryption));
152152

153153
if let Some(name) = &self.instance {
154-
Instance.put(buf, &mut offsets, &mut offset, name.len() as u16 + 1);
154+
Instance.put(
155+
buf,
156+
&mut offsets,
157+
&mut offset,
158+
u16::try_from(name.len() + 1).unwrap(),
159+
);
155160
buf.extend_from_slice(name.as_bytes());
156161
buf.push(b'\0');
157162
}

sqlx-core/src/mssql/protocol/rpc.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ impl Encode<'_> for RpcRequest<'_> {
7777

7878
match &self.procedure {
7979
Either::Left(name) => {
80-
buf.extend(&(name.len() as u16).to_le_bytes());
80+
buf.extend(&(u16::try_from(name.len()).unwrap()).to_le_bytes());
8181
buf.put_utf16_str(name);
8282
}
8383

sqlx-core/src/mssql/protocol/type_info.rs

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -269,11 +269,11 @@ impl TypeInfo {
269269
| DataType::VarChar
270270
| DataType::Binary
271271
| DataType::VarBinary => {
272-
buf.push(self.size as u8);
272+
buf.push(u8::try_from(self.size).unwrap());
273273
}
274274

275275
DataType::Decimal | DataType::Numeric | DataType::DecimalN | DataType::NumericN => {
276-
buf.push(self.size as u8);
276+
buf.push(u8::try_from(self.size).unwrap());
277277
buf.push(self.precision);
278278
buf.push(self.scale);
279279
}
@@ -397,7 +397,7 @@ impl TypeInfo {
397397
// Unknown size
398398
0xfffffffffffffffe => Vec::new(),
399399
// Known size
400-
_ => Vec::with_capacity(len as usize),
400+
_ => Vec::with_capacity(usize::try_from(len).unwrap()),
401401
};
402402

403403
loop {
@@ -483,7 +483,7 @@ impl TypeInfo {
483483
let size = if let IsNull::Yes = value.encode(buf) {
484484
0xFF
485485
} else {
486-
(buf.len() - offset - 1) as u8
486+
u8::try_from(buf.len() - offset - 1).unwrap()
487487
};
488488

489489
buf[offset] = size;
@@ -500,7 +500,7 @@ impl TypeInfo {
500500
let size = if let IsNull::Yes = value.encode(buf) {
501501
0xFFFF
502502
} else {
503-
(buf.len() - offset - 2) as u16
503+
u16::try_from(buf.len() - offset - 2).unwrap()
504504
};
505505

506506
buf[offset..(offset + 2)].copy_from_slice(&size.to_le_bytes());
@@ -532,7 +532,7 @@ impl TypeInfo {
532532
let size = if let IsNull::Yes = value.encode(buf) {
533533
0xFFFF_FFFF
534534
} else {
535-
(buf.len() - offset - 4) as u32
535+
u32::try_from(buf.len() - offset - 4).unwrap()
536536
};
537537

538538
buf[offset..(offset + 4)].copy_from_slice(&size.to_le_bytes());
@@ -691,19 +691,19 @@ impl TypeInfo {
691691
DataType::DateTime2N => {
692692
s.push_str("datetime2(");
693693
s.push_str(itoa::Buffer::new().format(self.scale));
694-
s.push_str(")");
694+
s.push(')');
695695
}
696696

697697
DataType::DateTimeOffsetN => {
698698
s.push_str("datetimeoffset(");
699699
s.push_str(itoa::Buffer::new().format(self.scale));
700-
s.push_str(")");
700+
s.push(')');
701701
}
702702

703703
DataType::TimeN => {
704704
s.push_str("time(");
705705
s.push_str(itoa::Buffer::new().format(self.scale));
706-
s.push_str(")");
706+
s.push(')');
707707
}
708708
DataType::SmallDateTime => s.push_str("smalldatetime"),
709709
DataType::Money => s.push_str("money"),
@@ -714,21 +714,21 @@ impl TypeInfo {
714714
DataType::DecimalN => {
715715
s.push_str("decimal(");
716716
s.push_str(itoa::Buffer::new().format(self.precision));
717-
s.push_str(", ");
717+
s.push(',');
718718
s.push_str(itoa::Buffer::new().format(self.scale));
719-
s.push_str(")");
719+
s.push(')');
720720
}
721721
DataType::NumericN => {
722722
s.push_str("numeric(");
723723
s.push_str(itoa::Buffer::new().format(self.precision));
724-
s.push_str(", ");
724+
s.push(',');
725725
s.push_str(itoa::Buffer::new().format(self.scale));
726-
s.push_str(")");
726+
s.push(')');
727727
}
728728
DataType::MoneyN => {
729729
s.push_str("money(");
730730
s.push_str(itoa::Buffer::new().format(self.scale));
731-
s.push_str(")");
731+
s.push(')');
732732
}
733733
DataType::Xml => s.push_str("xml"),
734734
DataType::UserDefined => s.push_str("user_defined_type"),

sqlx-core/src/mssql/row.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ impl Row for MssqlRow {
1919
type Database = Mssql;
2020

2121
fn columns(&self) -> &[MssqlColumn] {
22-
&*self.columns
22+
&self.columns
2323
}
2424

2525
fn try_get_raw<I>(&self, index: I) -> Result<MssqlValueRef<'_>, Error>
@@ -41,7 +41,7 @@ impl ColumnIndex<MssqlRow> for &'_ str {
4141
row.column_names
4242
.get(*self)
4343
.ok_or_else(|| Error::ColumnNotFound((*self).into()))
44-
.map(|v| *v)
44+
.copied()
4545
}
4646
}
4747

sqlx-core/src/mssql/statement.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ impl ColumnIndex<MssqlStatement<'_>> for &'_ str {
5252
.column_names
5353
.get(*self)
5454
.ok_or_else(|| Error::ColumnNotFound((*self).into()))
55-
.map(|v| *v)
55+
.copied()
5656
}
5757
}
5858

sqlx-core/src/mssql/transaction.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ impl TransactionManager for MssqlTransactionManager {
8585
PacketType::SqlBatch,
8686
SqlBatch {
8787
transaction_descriptor: conn.stream.transaction_descriptor,
88-
sql: &*query,
88+
sql: &query,
8989
},
9090
);
9191

sqlx-core/src/mssql/types/bigdecimal.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,9 @@ impl Encode<'_, Mssql> for BigDecimal {
4242
buf.push(sign);
4343
let mantissa = if exponent <= i64::from(u8::MAX) {
4444
if exponent < 0 {
45-
bigint *= BigInt::from(10).pow((-exponent) as u32);
45+
if let Ok(abs_exponent) = u32::try_from(-exponent) {
46+
bigint *= BigInt::from(10).pow(abs_exponent);
47+
}
4648
}
4749
bigint.abs().to_u128().unwrap_or(0)
4850
} else {

sqlx-core/src/mssql/types/bytes.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,12 @@ impl Type<Mssql> for [u8] {
2222
impl Encode<'_, Mssql> for &'_ [u8] {
2323
fn produces(&self) -> Option<MssqlTypeInfo> {
2424
let size = if self.len() <= 8000 {
25-
u32::try_from(self.len()).unwrap().max(1)
25+
let u_len = u32::try_from(self.len()).unwrap();
26+
std::cmp::max(u_len, 1)
2627
} else {
2728
0xFF_FF
2829
};
29-
return Some(MssqlTypeInfo(TypeInfo::new(DataType::BigVarBinary, size)));
30+
Some(MssqlTypeInfo(TypeInfo::new(DataType::BigVarBinary, size)))
3031
}
3132

3233
fn encode_by_ref(&self, buf: &mut Vec<u8>) -> IsNull {

sqlx-core/src/mssql/types/chrono.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,10 @@ where
160160
buf.extend_from_slice(&encode_date_time2(&self.naive_utc()));
161161
let seconds_from_utc = self.offset().fix().local_minus_utc();
162162
let mut encoded_offset: [u8; 2] = [0, 0];
163-
LittleEndian::write_i16(&mut encoded_offset, (seconds_from_utc / 60) as i16);
163+
LittleEndian::write_i16(
164+
&mut encoded_offset,
165+
i16::try_from(seconds_from_utc / 60).unwrap_or(i16::MAX),
166+
);
164167
buf.extend_from_slice(&encoded_offset);
165168
IsNull::No
166169
}

0 commit comments

Comments
 (0)