about summary refs log tree commit diff
diff options
context:
space:
mode:
authorChristiaan Dirkx <christiaan@dirkx.email>2021-06-20 11:55:26 +0200
committerChristiaan Dirkx <christiaan@dirkx.email>2021-06-20 11:55:26 +0200
commit835561ac5b3529a827c76dc4e7cea15f38047b5a (patch)
treea6543ddae0ee1660f0cce9c8ae7f49a77bab8faf
parent1a96d2272eadac00d9fb953e92bfdcd51e6a4b22 (diff)
downloadrust-835561ac5b3529a827c76dc4e7cea15f38047b5a.tar.gz
rust-835561ac5b3529a827c76dc4e7cea15f38047b5a.zip
Make `os_str_bytes::{Buf, Slice}` `pub` and `repr(transparent)`
-rw-r--r--library/std/src/sys_common/os_str_bytes.rs12
1 files changed, 4 insertions, 8 deletions
diff --git a/library/std/src/sys_common/os_str_bytes.rs b/library/std/src/sys_common/os_str_bytes.rs
index 0420428860b..470f401a6d2 100644
--- a/library/std/src/sys_common/os_str_bytes.rs
+++ b/library/std/src/sys_common/os_str_bytes.rs
@@ -14,17 +14,13 @@ use crate::sys_common::{AsInner, IntoInner};
 use core::str::lossy::Utf8Lossy;
 
 #[derive(Hash)]
-pub(crate) struct Buf {
+#[repr(transparent)]
+pub struct Buf {
     pub inner: Vec<u8>,
 }
 
-// FIXME:
-// `Buf::as_slice` current implementation relies
-// on `Slice` being layout-compatible with `[u8]`.
-// When attribute privacy is implemented, `Slice` should be annotated as `#[repr(transparent)]`.
-// Anyway, `Slice` representation and layout are considered implementation detail, are
-// not documented and must not be relied upon.
-pub(crate) struct Slice {
+#[repr(transparent)]
+pub struct Slice {
     pub inner: [u8],
 }