Struct rusteron_rb::ManagedCResource
source · pub struct ManagedCResource<T> { /* private fields */ }
Expand description
A custom struct for managing C resources with automatic cleanup.
It handles initialisation and clean-up of the resource and ensures that resources are properly released when they go out of scope.
Implementations§
source§impl<T> ManagedCResource<T>
impl<T> ManagedCResource<T>
sourcepub fn new(
init: impl FnOnce(*mut *mut T) -> i32,
cleanup: impl FnMut(*mut *mut T) -> i32 + 'static,
cleanup_struct: bool,
) -> Result<Self, AeronCError>
pub fn new( init: impl FnOnce(*mut *mut T) -> i32, cleanup: impl FnMut(*mut *mut T) -> i32 + 'static, cleanup_struct: bool, ) -> Result<Self, AeronCError>
Creates a new ManagedCResource with a given initializer and cleanup function.
The initializer is a closure that attempts to initialize the resource.
If initialization fails, the initializer should return an error code.
The cleanup function is used to release the resource when it’s no longer needed.
cleanup_struct
where it should clean up the struct in rust
pub fn new_borrowed(value: *const T) -> Self
sourcepub fn close(&mut self) -> Result<(), AeronCError>
pub fn close(&mut self) -> Result<(), AeronCError>
Closes the resource by calling the cleanup function.
If cleanup fails, it returns an AeronError
.
Trait Implementations§
source§impl<T> Debug for ManagedCResource<T>
impl<T> Debug for ManagedCResource<T>
Auto Trait Implementations§
impl<T> Freeze for ManagedCResource<T>
impl<T> !RefUnwindSafe for ManagedCResource<T>
impl<T> !Send for ManagedCResource<T>
impl<T> !Sync for ManagedCResource<T>
impl<T> Unpin for ManagedCResource<T>
impl<T> !UnwindSafe for ManagedCResource<T>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more