#[repr(transparent)]
pub struct Visibility { actual_data: MaybeUninit<VisibilityInternal>, }
Expand description

The self-referencing struct.

Fields§

§actual_data: MaybeUninit<VisibilityInternal>

Implementations§

source§

impl Visibility

source

pub fn new( private_field: Box<i32>, public_field_builder: impl for<'this> FnOnce(&'this Box<i32>) -> &'this i32, pub_crate_field_builder: impl for<'this> FnOnce(&'this Box<i32>) -> &'this i32 ) -> Visibility

Constructs a new instance of this self-referential struct. (See also VisibilityBuilder::build()). Each argument is a field of the new struct. Fields that refer to other fields inside the struct are initialized using functions instead of directly passing their value. The arguments are as follows:

ArgumentSuggested Use
private_fieldDirectly pass in the value this field should contain
public_field_builderUse a function or closure: (private_field: &_) -> public_field: _
pub_crate_field_builderUse a function or closure: (private_field: &_) -> pub_crate_field: _
source

pub async fn new_async( private_field: Box<i32>, public_field_builder: impl for<'this> FnOnce(&'this Box<i32>) -> Pin<Box<dyn Future<Output = &'this i32> + 'this>>, pub_crate_field_builder: impl for<'this> FnOnce(&'this Box<i32>) -> Pin<Box<dyn Future<Output = &'this i32> + 'this>> ) -> Visibility

Constructs a new instance of this self-referential struct. (See also VisibilityAsyncBuilder::build()). Each argument is a field of the new struct. Fields that refer to other fields inside the struct are initialized using functions instead of directly passing their value. The arguments are as follows:

ArgumentSuggested Use
private_fieldDirectly pass in the value this field should contain
public_field_builderUse a function or closure: (private_field: &_) -> public_field: _
pub_crate_field_builderUse a function or closure: (private_field: &_) -> pub_crate_field: _
source

pub async fn new_async_send( private_field: Box<i32>, public_field_builder: impl for<'this> FnOnce(&'this Box<i32>) -> Pin<Box<dyn Future<Output = &'this i32> + Send + 'this>>, pub_crate_field_builder: impl for<'this> FnOnce(&'this Box<i32>) -> Pin<Box<dyn Future<Output = &'this i32> + Send + 'this>> ) -> Visibility

Constructs a new instance of this self-referential struct. (See also VisibilityAsyncSendBuilder::build()). Each argument is a field of the new struct. Fields that refer to other fields inside the struct are initialized using functions instead of directly passing their value. The arguments are as follows:

ArgumentSuggested Use
private_fieldDirectly pass in the value this field should contain
public_field_builderUse a function or closure: (private_field: &_) -> public_field: _
pub_crate_field_builderUse a function or closure: (private_field: &_) -> pub_crate_field: _
source

pub fn try_new<Error_>( private_field: Box<i32>, public_field_builder: impl for<'this> FnOnce(&'this Box<i32>) -> Result<&'this i32, Error_>, pub_crate_field_builder: impl for<'this> FnOnce(&'this Box<i32>) -> Result<&'this i32, Error_> ) -> Result<Visibility, Error_>

(See also VisibilityTryBuilder::try_build().) Like new, but builders for self-referencing fields can return results. If any of them fail, Err is returned. If all of them succeed, Ok is returned. The arguments are as follows:

ArgumentSuggested Use
private_fieldDirectly pass in the value this field should contain
public_field_builderUse a function or closure: (private_field: &_) -> Result<public_field: _, Error_>
pub_crate_field_builderUse a function or closure: (private_field: &_) -> Result<pub_crate_field: _, Error_>
source

pub fn try_new_or_recover<Error_>( private_field: Box<i32>, public_field_builder: impl for<'this> FnOnce(&'this Box<i32>) -> Result<&'this i32, Error_>, pub_crate_field_builder: impl for<'this> FnOnce(&'this Box<i32>) -> Result<&'this i32, Error_> ) -> Result<Visibility, (Error_, Heads)>

(See also VisibilityTryBuilder::try_build_or_recover().) Like try_new, but all head fields are returned in the case of an error. The arguments are as follows:

ArgumentSuggested Use
private_fieldDirectly pass in the value this field should contain
public_field_builderUse a function or closure: (private_field: &_) -> Result<public_field: _, Error_>
pub_crate_field_builderUse a function or closure: (private_field: &_) -> Result<pub_crate_field: _, Error_>
source

pub async fn try_new_async<Error_>( private_field: Box<i32>, public_field_builder: impl for<'this> FnOnce(&'this Box<i32>) -> Pin<Box<dyn Future<Output = Result<&'this i32, Error_>> + 'this>>, pub_crate_field_builder: impl for<'this> FnOnce(&'this Box<i32>) -> Pin<Box<dyn Future<Output = Result<&'this i32, Error_>> + 'this>> ) -> Result<Visibility, Error_>

(See also VisibilityAsyncTryBuilder::try_build().) Like new, but builders for self-referencing fields can return results. If any of them fail, Err is returned. If all of them succeed, Ok is returned. The arguments are as follows:

ArgumentSuggested Use
private_fieldDirectly pass in the value this field should contain
public_field_builderUse a function or closure: (private_field: &_) -> Result<public_field: _, Error_>
pub_crate_field_builderUse a function or closure: (private_field: &_) -> Result<pub_crate_field: _, Error_>
source

pub async fn try_new_or_recover_async<Error_>( private_field: Box<i32>, public_field_builder: impl for<'this> FnOnce(&'this Box<i32>) -> Pin<Box<dyn Future<Output = Result<&'this i32, Error_>> + 'this>>, pub_crate_field_builder: impl for<'this> FnOnce(&'this Box<i32>) -> Pin<Box<dyn Future<Output = Result<&'this i32, Error_>> + 'this>> ) -> Result<Visibility, (Error_, Heads)>

(See also VisibilityAsyncTryBuilder::try_build_or_recover().) Like try_new, but all head fields are returned in the case of an error. The arguments are as follows:

ArgumentSuggested Use
private_fieldDirectly pass in the value this field should contain
public_field_builderUse a function or closure: (private_field: &_) -> Result<public_field: _, Error_>
pub_crate_field_builderUse a function or closure: (private_field: &_) -> Result<pub_crate_field: _, Error_>
source

pub async fn try_new_async_send<Error_>( private_field: Box<i32>, public_field_builder: impl for<'this> FnOnce(&'this Box<i32>) -> Pin<Box<dyn Future<Output = Result<&'this i32, Error_>> + Send + 'this>>, pub_crate_field_builder: impl for<'this> FnOnce(&'this Box<i32>) -> Pin<Box<dyn Future<Output = Result<&'this i32, Error_>> + Send + 'this>> ) -> Result<Visibility, Error_>

(See also VisibilityAsyncSendTryBuilder::try_build().) Like new, but builders for self-referencing fields can return results. If any of them fail, Err is returned. If all of them succeed, Ok is returned. The arguments are as follows:

ArgumentSuggested Use
private_fieldDirectly pass in the value this field should contain
public_field_builderUse a function or closure: (private_field: &_) -> Result<public_field: _, Error_>
pub_crate_field_builderUse a function or closure: (private_field: &_) -> Result<pub_crate_field: _, Error_>
source

pub async fn try_new_or_recover_async_send<Error_>( private_field: Box<i32>, public_field_builder: impl for<'this> FnOnce(&'this Box<i32>) -> Pin<Box<dyn Future<Output = Result<&'this i32, Error_>> + Send + 'this>>, pub_crate_field_builder: impl for<'this> FnOnce(&'this Box<i32>) -> Pin<Box<dyn Future<Output = Result<&'this i32, Error_>> + Send + 'this>> ) -> Result<Visibility, (Error_, Heads)>

(See also VisibilityAsyncSendTryBuilder::try_build_or_recover().) Like try_new, but all head fields are returned in the case of an error. The arguments are as follows:

ArgumentSuggested Use
private_fieldDirectly pass in the value this field should contain
public_field_builderUse a function or closure: (private_field: &_) -> Result<public_field: _, Error_>
pub_crate_field_builderUse a function or closure: (private_field: &_) -> Result<pub_crate_field: _, Error_>
source

pub(crate) fn with_private_field<'outer_borrow, ReturnType>( &'outer_borrow self, user: impl for<'this> FnOnce(&'outer_borrow Box<i32>) -> ReturnType ) -> ReturnType

Provides limited immutable access to private_field. This method was generated because the contents of private_field are immutably borrowed by other fields.

source

pub(crate) fn borrow_private_field<'this>(&'this self) -> &'this Box<i32>

Provides limited immutable access to private_field. This method was generated because the contents of private_field are immutably borrowed by other fields.

source

pub fn with_public_field<'outer_borrow, ReturnType>( &'outer_borrow self, user: impl for<'this> FnOnce(&'outer_borrow &'this i32) -> ReturnType ) -> ReturnType

Provides an immutable reference to public_field. This method was generated because public_field is a tail field.

source

pub fn borrow_public_field<'this>(&'this self) -> &'this &'this i32

Provides an immutable reference to public_field. This method was generated because public_field is a tail field.

source

pub fn with_public_field_mut<'outer_borrow, ReturnType>( &'outer_borrow mut self, user: impl for<'this> FnOnce(&'outer_borrow mut &'this i32) -> ReturnType ) -> ReturnType

Provides a mutable reference to public_field. This method was generated because public_field is a tail field. No borrow_public_field_mut function was generated because Rust’s borrow checker is currently unable to guarantee that such a method would be used safely.

source

pub(crate) fn with_pub_crate_field<'outer_borrow, ReturnType>( &'outer_borrow self, user: impl for<'this> FnOnce(&'outer_borrow &'this i32) -> ReturnType ) -> ReturnType

Provides an immutable reference to pub_crate_field. This method was generated because pub_crate_field is a tail field.

source

pub(crate) fn borrow_pub_crate_field<'this>(&'this self) -> &'this &'this i32

Provides an immutable reference to pub_crate_field. This method was generated because pub_crate_field is a tail field.

source

pub(crate) fn with_pub_crate_field_mut<'outer_borrow, ReturnType>( &'outer_borrow mut self, user: impl for<'this> FnOnce(&'outer_borrow mut &'this i32) -> ReturnType ) -> ReturnType

Provides a mutable reference to pub_crate_field. This method was generated because pub_crate_field is a tail field. No borrow_pub_crate_field_mut function was generated because Rust’s borrow checker is currently unable to guarantee that such a method would be used safely.

source

pub fn with<'outer_borrow, ReturnType>( &'outer_borrow self, user: impl for<'this> FnOnce(BorrowedFields<'outer_borrow, 'this>) -> ReturnType ) -> ReturnType

This method provides immutable references to all tail and immutably borrowed fields.

source

pub fn with_mut<'outer_borrow, ReturnType>( &'outer_borrow mut self, user: impl for<'this0, 'this1, 'this2> FnOnce(BorrowedMutFields<'outer_borrow, 'this2, 'this1, 'this0>) -> ReturnType ) -> ReturnType

This method provides mutable references to all tail fields.

source

pub fn into_heads(self) -> Heads

This function drops all internally referencing fields and returns only the head fields of this struct.

Trait Implementations§

source§

impl Drop for Visibility

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

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, 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, U> TryFrom<U> for T
where U: Into<T>,

§

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>,

§

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.