lkml.org 
[lkml]   [2023]   [Apr]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v5 06/15] rust: add pin-init API core
    On 4/3/23 17:45, Benno Lossin wrote:
    > This API is used to facilitate safe pinned initialization of structs. It
    > replaces cumbersome `unsafe` manual initialization with elegant safe macro
    > invocations.
    >
    > Due to the size of this change it has been split into six commits:
    > 1. This commit introducing the basic public interface: traits and
    > functions to represent and create initializers.
    > 2. Adds the `#[pin_data]`, `pin_init!`, `try_pin_init!`, `init!` and
    > `try_init!` macros along with their internal types.
    > 3. Adds the `InPlaceInit` trait that allows using an initializer to create
    > an object inside of a `Box<T>` and other smart pointers.
    > 4. Adds the `PinnedDrop` trait and adds macro support for it in
    > the `#[pin_data]` macro.
    > 5. Adds the `stack_pin_init!` macro allowing to pin-initialize a struct on
    > the stack.
    > 6. Adds the `Zeroable` trait and `init::zeroed` function to initialize
    > types that have `0x00` in all bytes as a valid bit pattern.
    >
    > Co-developed-by: Gary Guo <gary@garyguo.net>
    > Signed-off-by: Gary Guo <gary@garyguo.net>
    > Signed-off-by: Benno Lossin <y86-dev@protonmail.com>
    > Cc: Andreas Hindborg <a.hindborg@samsung.com>
    > Cc: Alice Ryhl <aliceryhl@google.com>
    > Cc: Wedson Almeida Filho <wedsonaf@gmail.com>

    Reviewed-by: Alice Ryhl <aliceryhl@google.com>

    \
     
     \ /
      Last update: 2023-04-03 19:57    [W:5.279 / U:0.348 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site