lkml.org 
[lkml]   [2023]   [Mar]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: [PATCH v3 04/13] rust: add pin-init API core
    Date

    y86-dev@protonmail.com writes:

    > From: Benno Lossin <y86-dev@protonmail.com>
    >
    > 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.
    >
    > --

    <snip>

    > 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>
    > ---

    Reviewed-by: Andreas Hindborg <a.hindborg@samsung.com>

    \
     
     \ /
      Last update: 2023-03-31 14:03    [W:7.874 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site