pub struct CapsuleName { /* private fields */ }Expand description
The name given to a capsule object.
This is a thin wrapper around *const c_char, which can be accessed with the as_ptr
method. The as_cstr method can be used as a convenience to access the name as a &CStr.
There is no guarantee that this capsule name pointer valid for any length of time, as arbitrary
Python code may change the name of a capsule object (by reaching native code which calls
PyCapsule_SetName). See the safety notes on as_cstr.
Implementations§
Source§impl CapsuleName
impl CapsuleName
Sourcepub unsafe fn as_cstr<'a>(self) -> &'a CStr
pub unsafe fn as_cstr<'a>(self) -> &'a CStr
Returns the capsule name as a &CStr.
Note: this method is a thin wrapper around CStr::from_ptr so (as of Rust 1.91) incurs a
length calculation on each call.
§Safety
There is no guarantee that the capsule name remains valid for any length of time, as arbitrary
Python code may change the name of the capsule. The caller should be aware of any conventions
of the capsule in question related to the lifetime of the name (many capsule names are
statically allocated, i.e. have the 'static lifetime, but Python does not require this).
The returned lifetime 'a is not related to the lifetime of the capsule itself, and the caller is
responsible for using the &CStr for as short a time as possible.
Trait Implementations§
Source§impl Clone for CapsuleName
impl Clone for CapsuleName
Source§fn clone(&self) -> CapsuleName
fn clone(&self) -> CapsuleName
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for CapsuleName
Auto Trait Implementations§
impl Freeze for CapsuleName
impl RefUnwindSafe for CapsuleName
impl !Send for CapsuleName
impl !Sync for CapsuleName
impl Unpin for CapsuleName
impl UnwindSafe for CapsuleName
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more