Struct Entry

Source
#[repr(C)]
pub struct Entry<T: StringFormat> { /* private fields */ }

Implementations§

Source§

impl<T: StringFormat> Entry<T>

Source

pub const WIDE: u16 = 32_768u16

Constant to represent a “wide” entry. This is used for determining if the entry is wide.

Source

pub const REF_COUNT_MASK: u16 = 32_767u16

Mask used for reference count in flags.

Source

pub const LENGTH_MASK: u32 = 16_777_215u32

Mask used to extract the length value from the length_or_right union.

Source

pub fn acquire(&self)

Acquire the entry by incrementing its reference count.

This method ensures atomicity by loading the current value of the reference count, and then attempts to increment the reference count. The operation is performed in a loop to ensure that the reference count does not overflow.

Source

pub const fn crc(&self) -> u16

Get the CRC checksum of the entry.

Source

pub const fn len(&self) -> u32

Returns the length of the entry, extracting it from the length_or_right union.

This corresponds to the length or size function in the C++ API.

§Returns

Returns the length stored in the length_or_right union after applying the LENGTH_MASK.

Source

pub fn as_raw(&self) -> *const T::Unit

Returns a raw pointer to the entry’s data.

This corresponds to the data function in the C++ API.

Source

pub unsafe fn release(entry: &*const T::Unit)

Releases the entry and performs the necessary cleanup. This function is unsafe because it involves dereferencing raw pointers.

§Safety
  • The caller must ensure that the entry is properly allocated and not already released.
  • Not having a double free.

Trait Implementations§

Source§

impl<T: Debug + StringFormat> Debug for Entry<T>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<T> !Freeze for Entry<T>

§

impl<T> RefUnwindSafe for Entry<T>

§

impl<T> !Send for Entry<T>

§

impl<T> !Sync for Entry<T>

§

impl<T> Unpin for Entry<T>

§

impl<T> UnwindSafe for Entry<T>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more