[][src]Struct ouroboros_examples::DocumentationExampleBuilder

pub struct DocumentationExampleBuilder<IntReferenceBuilder_: for<'this> FnOnce(&'this <Box<i32> as Deref>::Target) -> &'this i32, FloatReferenceBuilder_: for<'this> FnOnce(&'this mut <Box<f32> as Deref>::Target) -> &'this mut f32> {
    pub int_data: Box<i32>,
    pub float_data: Box<f32>,
    pub int_reference_builder: IntReferenceBuilder_,
    pub float_reference_builder: FloatReferenceBuilder_,
}

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
int_dataDirectly pass in the value this field should contain
float_dataDirectly pass in the value this field should contain
int_reference_builderUse a function or closure: (int_data: &_) -> int_reference: _
float_reference_builderUse a function or closure: (float_data: &mut _) -> float_reference: _

Fields

int_data: Box<i32>float_data: Box<f32>int_reference_builder: IntReferenceBuilder_float_reference_builder: FloatReferenceBuilder_

Implementations

impl<IntReferenceBuilder_: for<'this> FnOnce(&'this <Box<i32> as Deref>::Target) -> &'this i32, FloatReferenceBuilder_: for<'this> FnOnce(&'this mut <Box<f32> as Deref>::Target) -> &'this mut f32> DocumentationExampleBuilder<IntReferenceBuilder_, FloatReferenceBuilder_>[src]

pub fn build(self) -> DocumentationExample[src]

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

Auto Trait Implementations

impl<IntReferenceBuilder_, FloatReferenceBuilder_> RefUnwindSafe for DocumentationExampleBuilder<IntReferenceBuilder_, FloatReferenceBuilder_> where
    FloatReferenceBuilder_: RefUnwindSafe,
    IntReferenceBuilder_: RefUnwindSafe

impl<IntReferenceBuilder_, FloatReferenceBuilder_> Send for DocumentationExampleBuilder<IntReferenceBuilder_, FloatReferenceBuilder_> where
    FloatReferenceBuilder_: Send,
    IntReferenceBuilder_: Send

impl<IntReferenceBuilder_, FloatReferenceBuilder_> Sync for DocumentationExampleBuilder<IntReferenceBuilder_, FloatReferenceBuilder_> where
    FloatReferenceBuilder_: Sync,
    IntReferenceBuilder_: Sync

impl<IntReferenceBuilder_, FloatReferenceBuilder_> Unpin for DocumentationExampleBuilder<IntReferenceBuilder_, FloatReferenceBuilder_> where
    FloatReferenceBuilder_: Unpin,
    IntReferenceBuilder_: Unpin

impl<IntReferenceBuilder_, FloatReferenceBuilder_> UnwindSafe for DocumentationExampleBuilder<IntReferenceBuilder_, FloatReferenceBuilder_> where
    FloatReferenceBuilder_: UnwindSafe,
    IntReferenceBuilder_: UnwindSafe

Blanket Implementations

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

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

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

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

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

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.

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.