diff options
| author | Manish Goregaokar <manishsmail@gmail.com> | 2021-08-26 12:38:13 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-08-26 12:38:13 -0700 |
| commit | e760740c0371fed01b39a530fea5814945b8019f (patch) | |
| tree | e7760e9427447632bda0449efd404ab9dd804d43 | |
| parent | 0f7dc5db4543fbfd54db042a084b630fa5dced53 (diff) | |
| parent | 5b25de58d6cbfab4fefe3200de8864ab8f6a71d1 (diff) | |
| download | rust-e760740c0371fed01b39a530fea5814945b8019f.tar.gz rust-e760740c0371fed01b39a530fea5814945b8019f.zip | |
Rollup merge of #88340 - thomcc:c_size_t, r=joshtriplett
Add `c_size_t` and `c_ssize_t` to `std::os::raw`. Apparently these aren't guaranteed to be the same, and are merely "always the same in practice" (see https://rust-lang.zulipchat.com/#narrow/stream/136281-t-lang.2Fwg-unsafe-code-guidelines/topic/.60usize.60.20vs.20.60size_t.60). This is a big footgun, but I suspect it can be alleviated if we expose this and start migrating people to it in advance of any platforms that ever have this as different. I'll file a tracking issue after this gets some traction.
| -rw-r--r-- | library/std/src/os/raw/mod.rs | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/library/std/src/os/raw/mod.rs b/library/std/src/os/raw/mod.rs index 50464a050c7..1e220ea30ab 100644 --- a/library/std/src/os/raw/mod.rs +++ b/library/std/src/os/raw/mod.rs @@ -151,3 +151,17 @@ type_alias_no_nz! { "double.md", c_double = f64; } #[stable(feature = "raw_os", since = "1.1.0")] #[doc(no_inline)] pub use core::ffi::c_void; + +/// Equivalent to C's `size_t` type, from `stddef.h` (or `cstddef` for C++). +/// +/// This type is currently always [`usize`], however in the future there may be +/// platforms where this is not the case. +#[unstable(feature = "c_size_t", issue = "88345")] +pub type c_size_t = usize; + +/// Equivalent to C's `ssize_t` type, from `stddef.h` (or `cstddef` for C++). +/// +/// This type is currently always [`isize`], however in the future there may be +/// platforms where this is not the case. +#[unstable(feature = "c_size_t", issue = "88345")] +pub type c_ssize_t = isize; |
