Skip to content

Commit a7e725f

Browse files
authored
Rollup merge of #85275 - CDirkx:memchr, r=m-ou-se
Move `std::memchr` to `sys_common` `std::memchr` is a thin abstraction over the different `memchr` implementations in `sys`, along with documentation and tests. The module is only used internally by `std`, nothing is exported externally. Code like this is exactly what the `sys_common` module is for, so this PR moves it there.
2 parents 7a67602 + 5353c5c commit a7e725f

File tree

9 files changed

+10
-8
lines changed

9 files changed

+10
-8
lines changed

library/std/src/ffi/c_str.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ use crate::error::Error;
1010
use crate::fmt::{self, Write};
1111
use crate::io;
1212
use crate::mem;
13-
use crate::memchr;
1413
use crate::num::NonZeroU8;
1514
use crate::ops;
1615
use crate::os::raw::c_char;
@@ -20,6 +19,7 @@ use crate::slice;
2019
use crate::str::{self, Utf8Error};
2120
use crate::sync::Arc;
2221
use crate::sys;
22+
use crate::sys_common::memchr;
2323

2424
/// A type representing an owned, C-compatible, nul-terminated string with no nul bytes in the
2525
/// middle.

library/std/src/io/buffered/linewritershim.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use crate::io::{self, BufWriter, IoSlice, Write};
2-
use crate::memchr;
2+
use crate::sys_common::memchr;
33

44
/// Private helper struct for implementing the line-buffered writing logic.
55
/// This shim temporarily wraps a BufWriter, and uses its internals to

library/std/src/io/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -253,12 +253,12 @@ mod tests;
253253

254254
use crate::cmp;
255255
use crate::fmt;
256-
use crate::memchr;
257256
use crate::ops::{Deref, DerefMut};
258257
use crate::ptr;
259258
use crate::slice;
260259
use crate::str;
261260
use crate::sys;
261+
use crate::sys_common::memchr;
262262

263263
#[stable(feature = "rust1", since = "1.0.0")]
264264
pub use self::buffered::IntoInnerError;

library/std/src/lib.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -530,7 +530,6 @@ mod sys;
530530
pub mod alloc;
531531

532532
// Private support modules
533-
mod memchr;
534533
mod panicking;
535534

536535
// The runtime entry point and a few unstable public functions used by the

library/std/src/sys/hermit/os.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ use crate::ffi::{CStr, OsStr, OsString};
44
use crate::fmt;
55
use crate::io;
66
use crate::marker::PhantomData;
7-
use crate::memchr;
87
use crate::path::{self, PathBuf};
98
use crate::str;
109
use crate::sync::Mutex;
1110
use crate::sys::hermit::abi;
11+
use crate::sys::memchr;
1212
use crate::sys::unsupported;
1313
use crate::sys_common::os_str_bytes::*;
1414
use crate::vec;

library/std/src/sys/unix/os.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@ use crate::fmt;
1313
use crate::io;
1414
use crate::iter;
1515
use crate::mem;
16-
use crate::memchr;
1716
use crate::path::{self, PathBuf};
1817
use crate::ptr;
1918
use crate::slice;
2019
use crate::str;
2120
use crate::sys::cvt;
2221
use crate::sys::fd;
22+
use crate::sys::memchr;
2323
use crate::sys::rwlock::{RWLockReadGuard, StaticRWLock};
2424
use crate::sys_common::mutex::{StaticMutex, StaticMutexGuard};
2525
use crate::vec;

library/std/src/memchr.rs renamed to library/std/src/sys_common/memchr.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
// Original implementation taken from rust-memchr.
22
// Copyright 2015 Andrew Gallant, bluss and Nicolas Koch
33

4+
use crate::sys::memchr as sys;
5+
46
#[cfg(test)]
57
mod tests;
68

@@ -25,7 +27,7 @@ mod tests;
2527
/// ```
2628
#[inline]
2729
pub fn memchr(needle: u8, haystack: &[u8]) -> Option<usize> {
28-
crate::sys::memchr::memchr(needle, haystack)
30+
sys::memchr(needle, haystack)
2931
}
3032

3133
/// A safe interface to `memrchr`.
@@ -45,5 +47,5 @@ pub fn memchr(needle: u8, haystack: &[u8]) -> Option<usize> {
4547
/// ```
4648
#[inline]
4749
pub fn memrchr(needle: u8, haystack: &[u8]) -> Option<usize> {
48-
crate::sys::memchr::memrchr(needle, haystack)
50+
sys::memrchr(needle, haystack)
4951
}

library/std/src/sys_common/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ pub mod bytestring;
2525
pub mod condvar;
2626
pub mod fs;
2727
pub mod io;
28+
pub mod memchr;
2829
pub mod mutex;
2930
// `doc` is required because `sys/mod.rs` imports `unix/ext/mod.rs` on Windows
3031
// when generating documentation.

0 commit comments

Comments
 (0)