Re: [PATCH 1/6] rust: types: Add Ownable/Owned types

From: Andreas Hindborg
Date: Wed Feb 19 2025 - 03:45:05 EST


"Asahi Lina" <lina@xxxxxxxxxxxxx> writes:

> On 2/4/25 3:17 AM, Alice Ryhl wrote:
>> On Mon, Feb 3, 2025 at 3:17 PM Asahi Lina <lina@xxxxxxxxxxxxx> wrote:
>>>
>>>
>>>
>>> On 2/3/25 6:13 PM, Alice Ryhl wrote:
>>>> On Sun, Feb 2, 2025 at 2:06 PM Asahi Lina <lina@xxxxxxxxxxxxx> wrote:
>>>>> + /// Consumes the `Owned`, returning a raw pointer.
>>>>> + ///
>>>>> + /// This function does not actually relinquish ownership of the object.
>>>>> + /// After calling this function, the caller is responsible for ownership previously managed
>>>>> + /// by the `Owned`.
>>>>> + #[allow(dead_code)]
>>>>> + pub(crate) fn into_raw(me: Self) -> NonNull<T> {
>>>>
>>>> I would just make these methods public, like the ARef ones. Then you
>>>> can drop the #[allow(dead_code)] annotation.
>>>
>>> Does it make sense to ever have drivers doing this? I feel like these
>>> methods should be limited to the kernel crate.
>>
>> Not having drivers use this is the ideal, but I don't think we should
>> always expect it to be possible. The Binder driver has a C component
>> for the binderfs component, and it also has some code that's
>> essentially an abstraction inside the driver that I was asked to move
>> into Binder because it's so specific to Binder that it's not useful
>> for anyone else.
>
> That's fair, I'll make it pub.

Also, the kernel crate will split at some point. We might as well have
them public now and avoid the churn.


Best regards,
Andreas Hindborg