This issue tracks additional methods on Layout
which allow layouts to be composed to build complex layouts.
pub const fn padding_needed_for(&self, align: usize) -> usize; pub const fn repeat(&self, n: usize) -> Result<(Layout, usize), LayoutErr>; pub const fn repeat_packed(&self, n: usize) -> Result<Layout, LayoutErr>; pub const fn extend_packed(&self, next: Layout) -> Result<Layout, LayoutErr>; pub const fn dangling(&self) -> NonNull<u8>;
The main use case is to construct complex allocation layouts for use with the stable global allocator API. For example:
std::collections::HashMap
hashbrown
crossbeam-skiplist
One concern is that not many of these methods have been extensively used in practice. In the examples given above, only extend
, array
and align_to
are used, and I expect that these will be the most used in practice. padding_needed_for
is used in the implementation of Rc::from_raw
and Arc::from_raw
, but in theory could be superseded by the offset returned by extend
.
stepancheg, orzogc, MrCroxx and boozooksilverlyra and MrCroxxstanislav-tkach, gxtaillon, joseluis and tuguzT
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4