pub struct VisibilityAsyncBuilder<PublicFieldBuilder_: for<'this> FnOnce(&'this Box<i32>) -> Pin<Box<dyn Future<Output = &'this i32> + 'this>>, PubCrateFieldBuilder_: for<'this> FnOnce(&'this Box<i32>) -> 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:
Field | Suggested Use |
---|---|
private_field | Directly pass in the value this field should contain |
public_field_builder | Use a function or closure: (private_field: &_) -> public_field: _ |
pub_crate_field_builder | Use a function or closure: (private_field: &_) -> pub_crate_field: _ |
Fields§
§private_field: Box<i32>
§public_field_builder: PublicFieldBuilder_
§pub_crate_field_builder: PubCrateFieldBuilder_
Implementations§
source§impl<PublicFieldBuilder_: for<'this> FnOnce(&'this Box<i32>) -> Pin<Box<dyn Future<Output = &'this i32> + 'this>>, PubCrateFieldBuilder_: for<'this> FnOnce(&'this Box<i32>) -> Pin<Box<dyn Future<Output = &'this i32> + 'this>>> VisibilityAsyncBuilder<PublicFieldBuilder_, PubCrateFieldBuilder_>
impl<PublicFieldBuilder_: for<'this> FnOnce(&'this Box<i32>) -> Pin<Box<dyn Future<Output = &'this i32> + 'this>>, PubCrateFieldBuilder_: for<'this> FnOnce(&'this Box<i32>) -> Pin<Box<dyn Future<Output = &'this i32> + 'this>>> VisibilityAsyncBuilder<PublicFieldBuilder_, PubCrateFieldBuilder_>
sourcepub async fn build(self) -> Visibility
pub async fn build(self) -> Visibility
Calls Visibility::new()
using the provided values. This is preferable 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_>
impl<PublicFieldBuilder_, PubCrateFieldBuilder_> Sync for VisibilityAsyncBuilder<PublicFieldBuilder_, PubCrateFieldBuilder_>
impl<PublicFieldBuilder_, PubCrateFieldBuilder_> Unpin for VisibilityAsyncBuilder<PublicFieldBuilder_, PubCrateFieldBuilder_>
impl<PublicFieldBuilder_, PubCrateFieldBuilder_> UnwindSafe for VisibilityAsyncBuilder<PublicFieldBuilder_, PubCrateFieldBuilder_>where
PubCrateFieldBuilder_: UnwindSafe,
PublicFieldBuilder_: UnwindSafe,
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
Mutably borrows from an owned value. Read more