[−][src]Struct ouroboros_examples::ouroboros_impl_visibility::VisibilityBuilder
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
impl<PublicFieldBuilder_: for<'this> FnOnce(&'this <Box<i32> as Deref>::Target) -> &'this i32, PubCrateFieldBuilder_: for<'this> FnOnce(&'this <Box<i32> as Deref>::Target) -> &'this i32> VisibilityBuilder<PublicFieldBuilder_, PubCrateFieldBuilder_>
[src]
pub 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 VisibilityBuilder<PublicFieldBuilder_, PubCrateFieldBuilder_> where
PubCrateFieldBuilder_: RefUnwindSafe,
PublicFieldBuilder_: RefUnwindSafe,
[src]
PubCrateFieldBuilder_: RefUnwindSafe,
PublicFieldBuilder_: RefUnwindSafe,
impl<PublicFieldBuilder_, PubCrateFieldBuilder_> Send for VisibilityBuilder<PublicFieldBuilder_, PubCrateFieldBuilder_> where
PubCrateFieldBuilder_: Send,
PublicFieldBuilder_: Send,
[src]
PubCrateFieldBuilder_: Send,
PublicFieldBuilder_: Send,
impl<PublicFieldBuilder_, PubCrateFieldBuilder_> Sync for VisibilityBuilder<PublicFieldBuilder_, PubCrateFieldBuilder_> where
PubCrateFieldBuilder_: Sync,
PublicFieldBuilder_: Sync,
[src]
PubCrateFieldBuilder_: Sync,
PublicFieldBuilder_: Sync,
impl<PublicFieldBuilder_, PubCrateFieldBuilder_> Unpin for VisibilityBuilder<PublicFieldBuilder_, PubCrateFieldBuilder_> where
PubCrateFieldBuilder_: Unpin,
PublicFieldBuilder_: Unpin,
[src]
PubCrateFieldBuilder_: Unpin,
PublicFieldBuilder_: Unpin,
impl<PublicFieldBuilder_, PubCrateFieldBuilder_> UnwindSafe for VisibilityBuilder<PublicFieldBuilder_, PubCrateFieldBuilder_> where
PubCrateFieldBuilder_: UnwindSafe,
PublicFieldBuilder_: UnwindSafe,
[src]
PubCrateFieldBuilder_: UnwindSafe,
PublicFieldBuilder_: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
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]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,