Skip to main content

MessageUninitBuilder

Struct MessageUninitBuilder 

Source
pub struct MessageUninitBuilder<'_wincode_inner> { /* private fields */ }
Expand description

A helper struct that provides convenience methods for reading and writing to a MaybeUninit struct with a bit-set tracking the initialization state of the fields.

The builder will drop all initialized fields in reverse order on drop. When the struct is fully initialized, you must call finish or into_assume_init_mut to forget the builder. Otherwise, all the initialized fields will be dropped when the builder is dropped.

Implementations§

Source§

impl<'_wincode_inner> MessageUninitBuilder<'_wincode_inner>

Source

pub const fn from_maybe_uninit_mut( inner: &'_wincode_inner mut MaybeUninit<Message>, ) -> Self

Source

pub const fn is_init(&self) -> bool

Check if the builder is fully initialized.

This will check if all field initialization bits are set.

Source

pub const unsafe fn into_assume_init_mut(self) -> &'_wincode_inner mut Message

Assume the builder is fully initialized, and return a mutable reference to the inner MaybeUninit struct.

The builder will be forgotten, so the drop logic will not longer run.

§Safety

Calling this when the content is not yet fully initialized causes undefined behavior: it is up to the caller to guarantee that the MaybeUninit<T> really is in an initialized state.

Source

pub const fn finish(self)

Forget the builder, disabling the drop logic.

Source§

impl<'_wincode_inner> MessageUninitBuilder<'_wincode_inner>

Source

pub const fn uninit_header_mut(&mut self) -> &mut MaybeUninit<MessageHeader>

Get a mutable reference to the maybe uninitialized field.

Source

pub const fn write_header(&mut self, val: MessageHeader) -> &mut Self

Write a value to the maybe uninitialized field.

Source

pub fn read_header<'de>( &mut self, reader: &mut impl Reader<'de>, ) -> ReadResult<&mut Self>

Read a value from the reader into the maybe uninitialized field.

Source

pub unsafe fn init_header_with( &mut self, initializer: impl FnMut(&mut MaybeUninit<MessageHeader>) -> ReadResult<()>, ) -> ReadResult<&mut Self>

Initialize the field with a given initializer function.

§Safety

The caller must guarantee that the initializer function fully initializes the field.

Source

pub const unsafe fn assume_init_header(&mut self) -> &mut Self

Mark the field as initialized.

§Safety

Caller must guarantee the field has been fully initialized prior to calling this.

Source

pub const fn uninit_account_keys_mut( &mut self, ) -> &mut MaybeUninit<Vec<Address, ShortU16Len>>

Get a mutable reference to the maybe uninitialized field.

Source

pub const fn write_account_keys( &mut self, val: Vec<Address, ShortU16Len>, ) -> &mut Self

Write a value to the maybe uninitialized field.

Source

pub fn read_account_keys<'de>( &mut self, reader: &mut impl Reader<'de>, ) -> ReadResult<&mut Self>

Read a value from the reader into the maybe uninitialized field.

Source

pub unsafe fn init_account_keys_with( &mut self, initializer: impl FnMut(&mut MaybeUninit<Vec<Address, ShortU16Len>>) -> ReadResult<()>, ) -> ReadResult<&mut Self>

Initialize the field with a given initializer function.

§Safety

The caller must guarantee that the initializer function fully initializes the field.

Source

pub const unsafe fn assume_init_account_keys(&mut self) -> &mut Self

Mark the field as initialized.

§Safety

Caller must guarantee the field has been fully initialized prior to calling this.

Source

pub const fn uninit_recent_blockhash_mut(&mut self) -> &mut MaybeUninit<Hash>

Get a mutable reference to the maybe uninitialized field.

Source

pub const fn write_recent_blockhash(&mut self, val: Hash) -> &mut Self

Write a value to the maybe uninitialized field.

Source

pub fn read_recent_blockhash<'de>( &mut self, reader: &mut impl Reader<'de>, ) -> ReadResult<&mut Self>

Read a value from the reader into the maybe uninitialized field.

Source

pub unsafe fn init_recent_blockhash_with( &mut self, initializer: impl FnMut(&mut MaybeUninit<Hash>) -> ReadResult<()>, ) -> ReadResult<&mut Self>

Initialize the field with a given initializer function.

§Safety

The caller must guarantee that the initializer function fully initializes the field.

Source

pub const unsafe fn assume_init_recent_blockhash(&mut self) -> &mut Self

Mark the field as initialized.

§Safety

Caller must guarantee the field has been fully initialized prior to calling this.

Source

pub const fn uninit_instructions_mut( &mut self, ) -> &mut MaybeUninit<Vec<CompiledInstruction, ShortU16Len>>

Get a mutable reference to the maybe uninitialized field.

Source

pub const fn write_instructions( &mut self, val: Vec<CompiledInstruction, ShortU16Len>, ) -> &mut Self

Write a value to the maybe uninitialized field.

Source

pub fn read_instructions<'de>( &mut self, reader: &mut impl Reader<'de>, ) -> ReadResult<&mut Self>

Read a value from the reader into the maybe uninitialized field.

Source

pub unsafe fn init_instructions_with( &mut self, initializer: impl FnMut(&mut MaybeUninit<Vec<CompiledInstruction, ShortU16Len>>) -> ReadResult<()>, ) -> ReadResult<&mut Self>

Initialize the field with a given initializer function.

§Safety

The caller must guarantee that the initializer function fully initializes the field.

Source

pub const unsafe fn assume_init_instructions(&mut self) -> &mut Self

Mark the field as initialized.

§Safety

Caller must guarantee the field has been fully initialized prior to calling this.

Trait Implementations§

Source§

impl<'_wincode_inner> Drop for MessageUninitBuilder<'_wincode_inner>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

§

impl<'_wincode_inner> Freeze for MessageUninitBuilder<'_wincode_inner>

§

impl<'_wincode_inner> RefUnwindSafe for MessageUninitBuilder<'_wincode_inner>

§

impl<'_wincode_inner> Send for MessageUninitBuilder<'_wincode_inner>

§

impl<'_wincode_inner> Sync for MessageUninitBuilder<'_wincode_inner>

§

impl<'_wincode_inner> Unpin for MessageUninitBuilder<'_wincode_inner>

§

impl<'_wincode_inner> !UnwindSafe for MessageUninitBuilder<'_wincode_inner>

Blanket Implementations§

Source§

impl<T> AbiExample for T

Source§

default fn example() -> T

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, 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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V