Skip to content

Commit 3e44f88

Browse files
Bump MSRV to 1.57 (#788)
1 parent f29e939 commit 3e44f88

File tree

9 files changed

+21
-60
lines changed

9 files changed

+21
-60
lines changed

Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ name = "bytes"
55
# - Update CHANGELOG.md.
66
# - Create "v1.x.y" git tag.
77
version = "1.10.1"
8-
edition = "2018"
9-
rust-version = "1.39"
8+
edition = "2021"
9+
rust-version = "1.57"
1010
license = "MIT"
1111
authors = [
1212
"Carl Lerche <me@carllerche.com>",

clippy.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
msrv = "1.39"
1+
msrv = "1.57"

src/buf/buf_mut.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use crate::buf::{limit, Chain, Limit, UninitSlice};
33
use crate::buf::{writer, Writer};
44
use crate::{panic_advance, panic_does_not_fit, TryGetError};
55

6-
use core::{mem, ptr, usize};
6+
use core::{mem, ptr};
77

88
use alloc::{boxed::Box, vec::Vec};
99

@@ -1503,7 +1503,7 @@ unsafe impl BufMut for &mut [u8] {
15031503
}
15041504

15051505
// Lifetime dance taken from `impl Write for &mut [u8]`.
1506-
let (_, b) = core::mem::replace(self, &mut []).split_at_mut(cnt);
1506+
let (_, b) = core::mem::take(self).split_at_mut(cnt);
15071507
*self = b;
15081508
}
15091509

@@ -1559,7 +1559,7 @@ unsafe impl BufMut for &mut [core::mem::MaybeUninit<u8>] {
15591559
}
15601560

15611561
// Lifetime dance taken from `impl Write for &mut [u8]`.
1562-
let (_, b) = core::mem::replace(self, &mut []).split_at_mut(cnt);
1562+
let (_, b) = core::mem::take(self).split_at_mut(cnt);
15631563
*self = b;
15641564
}
15651565

@@ -1600,7 +1600,7 @@ unsafe impl BufMut for Vec<u8> {
16001600
#[inline]
16011601
fn remaining_mut(&self) -> usize {
16021602
// A vector can never have more than isize::MAX bytes
1603-
core::isize::MAX as usize - self.len()
1603+
isize::MAX as usize - self.len()
16041604
}
16051605

16061606
#[inline]

src/buf/take.rs

Lines changed: 1 addition & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -163,24 +163,7 @@ impl<T: Buf> Buf for Take<T> {
163163
}
164164

165165
const LEN: usize = 16;
166-
let mut slices: [IoSlice<'a>; LEN] = [
167-
IoSlice::new(&[]),
168-
IoSlice::new(&[]),
169-
IoSlice::new(&[]),
170-
IoSlice::new(&[]),
171-
IoSlice::new(&[]),
172-
IoSlice::new(&[]),
173-
IoSlice::new(&[]),
174-
IoSlice::new(&[]),
175-
IoSlice::new(&[]),
176-
IoSlice::new(&[]),
177-
IoSlice::new(&[]),
178-
IoSlice::new(&[]),
179-
IoSlice::new(&[]),
180-
IoSlice::new(&[]),
181-
IoSlice::new(&[]),
182-
IoSlice::new(&[]),
183-
];
166+
let mut slices: [IoSlice<'a>; LEN] = [IoSlice::new(&[]); LEN];
184167

185168
let cnt = self
186169
.inner

src/bytes.rs

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
1-
use core::iter::FromIterator;
21
use core::mem::{self, ManuallyDrop};
32
use core::ops::{Deref, RangeBounds};
43
use core::ptr::NonNull;
5-
use core::{cmp, fmt, hash, ptr, slice, usize};
4+
use core::{cmp, fmt, hash, ptr, slice};
65

76
use alloc::{
87
alloc::{dealloc, Layout},
@@ -16,7 +15,7 @@ use crate::buf::IntoIter;
1615
#[allow(unused)]
1716
use crate::loom::sync::atomic::AtomicMut;
1817
use crate::loom::sync::atomic::{AtomicPtr, AtomicUsize, Ordering};
19-
use crate::{offset_from, Buf, BytesMut};
18+
use crate::{Buf, BytesMut};
2019

2120
/// A cheaply cloneable and sliceable chunk of contiguous memory.
2221
///
@@ -1235,7 +1234,7 @@ unsafe fn promotable_to_vec(
12351234

12361235
let buf = f(shared);
12371236

1238-
let cap = offset_from(ptr, buf) + len;
1237+
let cap = ptr.offset_from(buf) as usize + len;
12391238

12401239
// Copy back buffer
12411240
ptr::copy(ptr, buf, len);
@@ -1263,7 +1262,7 @@ unsafe fn promotable_to_mut(
12631262
debug_assert_eq!(kind, KIND_VEC);
12641263

12651264
let buf = f(shared);
1266-
let off = offset_from(ptr, buf);
1265+
let off = ptr.offset_from(buf) as usize;
12671266
let cap = off + len;
12681267
let v = Vec::from_raw_parts(buf, cap, cap);
12691268

@@ -1348,7 +1347,7 @@ unsafe fn promotable_is_unique(data: &AtomicPtr<()>) -> bool {
13481347
}
13491348

13501349
unsafe fn free_boxed_slice(buf: *mut u8, offset: *const u8, len: usize) {
1351-
let cap = offset_from(offset, buf) + len;
1350+
let cap = offset.offset_from(buf) as usize + len;
13521351
dealloc(buf, Layout::from_size_align(cap, 1).unwrap())
13531352
}
13541353

@@ -1444,7 +1443,7 @@ unsafe fn shared_to_mut_impl(shared: *mut Shared, ptr: *const u8, len: usize) ->
14441443
let cap = shared.cap;
14451444

14461445
// Rebuild Vec
1447-
let off = offset_from(ptr, buf);
1446+
let off = ptr.offset_from(buf) as usize;
14481447
let v = Vec::from_raw_parts(buf, len + off, cap);
14491448

14501449
let mut b = BytesMut::from_vec(v);
@@ -1510,7 +1509,7 @@ unsafe fn shallow_clone_vec(
15101509
// vector.
15111510
let shared = Box::new(Shared {
15121511
buf,
1513-
cap: offset_from(offset, buf) + len,
1512+
cap: offset.offset_from(buf) as usize + len,
15141513
// Initialize refcount to 2. One for this reference, and one
15151514
// for the new clone that will be returned from
15161515
// `shallow_clone`.

src/bytes_mut.rs

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
1-
use core::iter::FromIterator;
21
use core::mem::{self, ManuallyDrop, MaybeUninit};
32
use core::ops::{Deref, DerefMut};
43
use core::ptr::{self, NonNull};
5-
use core::{cmp, fmt, hash, isize, slice, usize};
4+
use core::{cmp, fmt, hash, slice};
65

76
use alloc::{
87
borrow::{Borrow, BorrowMut},
@@ -17,7 +16,7 @@ use crate::bytes::Vtable;
1716
#[allow(unused)]
1817
use crate::loom::sync::atomic::AtomicMut;
1918
use crate::loom::sync::atomic::{AtomicPtr, AtomicUsize, Ordering};
20-
use crate::{offset_from, Buf, BufMut, Bytes, TryGetError};
19+
use crate::{Buf, BufMut, Bytes, TryGetError};
2120

2221
/// A unique reference to a contiguous slice of memory.
2322
///
@@ -694,7 +693,7 @@ impl BytesMut {
694693
let v_capacity = v.capacity();
695694
let ptr = v.as_mut_ptr();
696695

697-
let offset = offset_from(self.ptr.as_ptr(), ptr);
696+
let offset = self.ptr.as_ptr().offset_from(ptr) as usize;
698697

699698
// Compare the condition in the `kind == KIND_VEC` case above
700699
// for more details.
@@ -1722,7 +1721,7 @@ impl From<BytesMut> for Vec<u8> {
17221721
let shared = bytes.data as *mut Shared;
17231722

17241723
if unsafe { (*shared).is_unique() } {
1725-
let vec = mem::replace(unsafe { &mut (*shared).vec }, Vec::new());
1724+
let vec = core::mem::take(unsafe { &mut (*shared).vec });
17261725

17271726
unsafe { release_shared(shared) };
17281727

@@ -1797,7 +1796,7 @@ unsafe fn shared_v_to_vec(data: &AtomicPtr<()>, ptr: *const u8, len: usize) -> V
17971796
let shared = &mut *shared;
17981797

17991798
// Drop shared
1800-
let mut vec = mem::replace(&mut shared.vec, Vec::new());
1799+
let mut vec = core::mem::take(&mut shared.vec);
18011800
release_shared(shared);
18021801

18031802
// Copy back buffer
@@ -1823,7 +1822,7 @@ unsafe fn shared_v_to_mut(data: &AtomicPtr<()>, ptr: *const u8, len: usize) -> B
18231822
let v = &mut shared.vec;
18241823
let v_capacity = v.capacity();
18251824
let v_ptr = v.as_mut_ptr();
1826-
let offset = offset_from(ptr as *mut u8, v_ptr);
1825+
let offset = ptr.offset_from(v_ptr) as usize;
18271826
let cap = v_capacity - offset;
18281827

18291828
let ptr = vptr(ptr as *mut u8);

src/lib.rs

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,6 @@ fn abort() -> ! {
114114
#[inline(always)]
115115
#[cfg(feature = "std")]
116116
fn saturating_sub_usize_u64(a: usize, b: u64) -> usize {
117-
use core::convert::TryFrom;
118117
match usize::try_from(b) {
119118
Ok(b) => a.saturating_sub(b),
120119
Err(_) => 0,
@@ -124,7 +123,6 @@ fn saturating_sub_usize_u64(a: usize, b: u64) -> usize {
124123
#[inline(always)]
125124
#[cfg(feature = "std")]
126125
fn min_u64_usize(a: u64, b: usize) -> usize {
127-
use core::convert::TryFrom;
128126
match usize::try_from(a) {
129127
Ok(a) => usize::min(a, b),
130128
Err(_) => b,
@@ -182,18 +180,3 @@ fn panic_does_not_fit(size: usize, nbytes: usize) -> ! {
182180
size, nbytes
183181
);
184182
}
185-
186-
/// Precondition: dst >= original
187-
///
188-
/// The following line is equivalent to:
189-
///
190-
/// ```rust,ignore
191-
/// self.ptr.as_ptr().offset_from(ptr) as usize;
192-
/// ```
193-
///
194-
/// But due to min rust is 1.39 and it is only stabilized
195-
/// in 1.47, we cannot use it.
196-
#[inline]
197-
fn offset_from(dst: *const u8, original: *const u8) -> usize {
198-
dst as usize - original as usize
199-
}

tests/test_buf_mut.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ use bytes::buf::UninitSlice;
44
use bytes::{BufMut, BytesMut};
55
use core::fmt::Write;
66
use core::mem::MaybeUninit;
7-
use core::usize;
87

98
#[test]
109
fn test_vec_as_mut_buf() {

tests/test_bytes.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ use std::sync::atomic::{AtomicUsize, Ordering};
55
use std::sync::Arc;
66

77
use std::panic::{self, AssertUnwindSafe};
8-
use std::usize;
98

109
const LONG: &[u8] = b"mary had a little lamb, little lamb, little lamb";
1110
const SHORT: &[u8] = b"hello world";
@@ -82,7 +81,6 @@ fn fmt() {
8281
#[test]
8382
fn fmt_write() {
8483
use std::fmt::Write;
85-
use std::iter::FromIterator;
8684
let s = String::from_iter((0..10).map(|_| "abcdefg"));
8785

8886
let mut a = BytesMut::with_capacity(64);

0 commit comments

Comments
 (0)