Struct ouroboros_examples::ouroboros_impl_visibility::VisibilityAsyncBuilder[][src]

pub struct VisibilityAsyncBuilder<PublicFieldBuilder_: for<'this> FnOnce(&'this <Box<i32> as Deref>::Target) -> Pin<Box<dyn Future<Output = &'this i32> + 'this>>, PubCrateFieldBuilder_: for<'this> FnOnce(&'this <Box<i32> as Deref>::Target) -> Pin<Box<dyn Future<Output = &'this i32> + 'this>>> {
    pub private_field: Box<i32>,
    pub public_field_builder: PublicFieldBuilder_,
    pub pub_crate_field_builder: PubCrateFieldBuilder_,
}
Expand description

A more verbose but stable way to construct self-referencing structs. It is comparable to using StructName { field1: value1, field2: value2 } rather than StructName::new(value1, value2). This has the dual benefit of making your code both easier to refactor and more readable. Call build() to construct the actual struct. The fields of this struct should be used as follows:

FieldSuggested 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: _

Fields

private_field: Box<i32>public_field_builder: PublicFieldBuilder_pub_crate_field_builder: PubCrateFieldBuilder_

Implementations

impl<PublicFieldBuilder_: for<'this> FnOnce(&'this <Box<i32> as Deref>::Target) -> Pin<Box<dyn Future<Output = &'this i32> + 'this>>, PubCrateFieldBuilder_: for<'this> FnOnce(&'this <Box<i32> as Deref>::Target) -> Pin<Box<dyn Future<Output = &'this i32> + 'this>>> VisibilityAsyncBuilder<PublicFieldBuilder_, PubCrateFieldBuilder_>[src]

pub async fn build(self) -> Visibility[src]

Calls Visibility::new() using the provided values. This is preferrable over calling new() directly for the reasons listed above.

Auto Trait Implementations

impl<PublicFieldBuilder_, PubCrateFieldBuilder_> RefUnwindSafe for VisibilityAsyncBuilder<PublicFieldBuilder_, PubCrateFieldBuilder_> where
    PubCrateFieldBuilder_: RefUnwindSafe,
    PublicFieldBuilder_: RefUnwindSafe

impl<PublicFieldBuilder_, PubCrateFieldBuilder_> Send for VisibilityAsyncBuilder<PublicFieldBuilder_, PubCrateFieldBuilder_> where
    PubCrateFieldBuilder_: Send,
    PublicFieldBuilder_: Send

impl<PublicFieldBuilder_, PubCrateFieldBuilder_> Sync for VisibilityAsyncBuilder<PublicFieldBuilder_, PubCrateFieldBuilder_> where
    PubCrateFieldBuilder_: Sync,
    PublicFieldBuilder_: Sync

impl<PublicFieldBuilder_, PubCrateFieldBuilder_> Unpin for VisibilityAsyncBuilder<PublicFieldBuilder_, PubCrateFieldBuilder_> where
    PubCrateFieldBuilder_: Unpin,
    PublicFieldBuilder_: Unpin

impl<PublicFieldBuilder_, PubCrateFieldBuilder_> UnwindSafe for VisibilityAsyncBuilder<PublicFieldBuilder_, PubCrateFieldBuilder_> where
    PubCrateFieldBuilder_: UnwindSafe,
    PublicFieldBuilder_: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

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

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

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

Performs the conversion.