-
Notifications
You must be signed in to change notification settings - Fork 24
Open
Labels
Description
All of the following designs are in use for various standard library modules:
core::$module⊆alloc::$module⊆std::$modulecore::$module∩alloc::$module= ∅, (core::$module∪alloc::$module) ⊆std::$module- something else, intentionally
- something else, unintentionally
Is one of these a good design that should ideally be getting applied for all modules?
| design 1 | core::alloc |
alloc::alloc |
std::alloc |
|---|---|---|---|
Allocator |
☑️ | ☑️ | ☑️ |
GlobalAlloc |
☑️ | ☑️ | ☑️ |
Layout |
☑️ | ☑️ | ☑️ |
Global |
☑️ | ☑️ | |
alloc |
☑️ | ☑️ | |
System |
☑️ | ||
set_alloc_error_hook |
☑️ |
| design 2 | core::sync |
alloc::sync |
std::sync |
|---|---|---|---|
atomic |
☑️ | ☑️ | |
Arc |
☑️ | ☑️ | |
Weak |
☑️ | ☑️ | |
Mutex |
☑️ | ||
mpsc |
☑️ |
| design 3 | core::panic |
alloc::panic |
std::panic |
|---|---|---|---|
Location |
☑️ | ☑️ | |
UnwindSafe |
☑️ | ☑️ | |
PanicInfo |
☑️ | deprecated | |
PanicMessage |
☑️ | ||
PanicHookInfo |
☑️ | ||
catch_unwind |
☑️ |
| design 4 | core::ffi::c_str |
alloc::ffi::c_str |
std::ffi::c_str |
|---|---|---|---|
CStr |
☑️ | ☑️ | |
FromBytesUntilNulError |
☑️ | ☑️ | |
FromBytesWithNulError |
☑️ | ☑️ | |
Bytes (bug?) |
☑️ | ||
CString |
☑️ | ☑️ | |
FromVecWithNulError |
☑️ | ☑️ | |
IntoStringError |
☑️ | ☑️ | |
NulError |
☑️ | ☑️ |
Some other examples where an item in core::$module and/or alloc::$module does not appear in std::$module:
core::char::encode_utf8_rawcore::char::encode_utf16_rawcore::error::Sourcecore::ffi::va_listcore::iter::InPlaceIterablecore::iter::SourceItercore::iter::TrustedFusedcore::iter::TrustedRandomAccesscore::iter::TrustedRandomAccessNoCoercecore::ops::Receivercore::ptr::Thincore::ptr::Uniquecore::slice::memchrcore::slice::GetManyMutErrorcore::slice::SlicePatterncore::str::next_code_pointcore::str::utf8_char_widthcore::panickingcore::rangecore::ub_checkscore::unicode