Struct ouroboros_examples::ouroboros_impl_box_and_ref::BoxAndRef [−][src]
A simple struct which contains a Box<i32>
and a &'this i32
.
Implementations
impl BoxAndRef
[src]
pub(crate) fn new(
data: Box<i32>,
data_ref_builder: impl for<'this> FnOnce(&'this <Box<i32> as Deref>::Target) -> &'this i32
) -> BoxAndRef
[src]
data: Box<i32>,
data_ref_builder: impl for<'this> FnOnce(&'this <Box<i32> as Deref>::Target) -> &'this i32
) -> BoxAndRef
Constructs a new instance of this self-referential struct. (See also BoxAndRefBuilder::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:
Argument | Suggested Use |
---|---|
data | Directly pass in the value this field should contain |
data_ref_builder | Use a function or closure: (data: &_) -> data_ref: _ |
pub(crate) async fn new_async(
data: Box<i32>,
data_ref_builder: impl for<'this> FnOnce(&'this <Box<i32> as Deref>::Target) -> Pin<Box<dyn Future<Output = &'this i32> + 'this>>
) -> BoxAndRef
[src]
data: Box<i32>,
data_ref_builder: impl for<'this> FnOnce(&'this <Box<i32> as Deref>::Target) -> Pin<Box<dyn Future<Output = &'this i32> + 'this>>
) -> BoxAndRef
Constructs a new instance of this self-referential struct. (See also BoxAndRefAsyncBuilder::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:
Argument | Suggested Use |
---|---|
data | Directly pass in the value this field should contain |
data_ref_builder | Use a function or closure: (data: &_) -> data_ref: _ |
pub(crate) fn try_new<Error_>(
data: Box<i32>,
data_ref_builder: impl for<'this> FnOnce(&'this <Box<i32> as Deref>::Target) -> Result<&'this i32, Error_>
) -> Result<BoxAndRef, Error_>
[src]
data: Box<i32>,
data_ref_builder: impl for<'this> FnOnce(&'this <Box<i32> as Deref>::Target) -> Result<&'this i32, Error_>
) -> Result<BoxAndRef, Error_>
(See also BoxAndRefTryBuilder::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:
Argument | Suggested Use |
---|---|
data | Directly pass in the value this field should contain |
data_ref_builder | Use a function or closure: (data: &_) -> Result<data_ref: _, Error_> |
pub(crate) fn try_new_or_recover<Error_>(
data: Box<i32>,
data_ref_builder: impl for<'this> FnOnce(&'this <Box<i32> as Deref>::Target) -> Result<&'this i32, Error_>
) -> Result<BoxAndRef, (Error_, Heads)>
[src]
data: Box<i32>,
data_ref_builder: impl for<'this> FnOnce(&'this <Box<i32> as Deref>::Target) -> Result<&'this i32, Error_>
) -> Result<BoxAndRef, (Error_, Heads)>
(See also BoxAndRefTryBuilder::try_build_or_recover()
.) Like try_new
, but all head fields are returned in the case of an error. The arguments are as follows:
Argument | Suggested Use |
---|---|
data | Directly pass in the value this field should contain |
data_ref_builder | Use a function or closure: (data: &_) -> Result<data_ref: _, Error_> |
pub(crate) async fn try_new_async<Error_>(
data: Box<i32>,
data_ref_builder: impl for<'this> FnOnce(&'this <Box<i32> as Deref>::Target) -> Pin<Box<dyn Future<Output = Result<&'this i32, Error_>> + 'this>>
) -> Result<BoxAndRef, Error_>
[src]
data: Box<i32>,
data_ref_builder: impl for<'this> FnOnce(&'this <Box<i32> as Deref>::Target) -> Pin<Box<dyn Future<Output = Result<&'this i32, Error_>> + 'this>>
) -> Result<BoxAndRef, Error_>
(See also BoxAndRefAsyncTryBuilder::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:
Argument | Suggested Use |
---|---|
data | Directly pass in the value this field should contain |
data_ref_builder | Use a function or closure: (data: &_) -> Result<data_ref: _, Error_> |
pub(crate) async fn try_new_or_recover_async<Error_>(
data: Box<i32>,
data_ref_builder: impl for<'this> FnOnce(&'this <Box<i32> as Deref>::Target) -> Pin<Box<dyn Future<Output = Result<&'this i32, Error_>> + 'this>>
) -> Result<BoxAndRef, (Error_, Heads)>
[src]
data: Box<i32>,
data_ref_builder: impl for<'this> FnOnce(&'this <Box<i32> as Deref>::Target) -> Pin<Box<dyn Future<Output = Result<&'this i32, Error_>> + 'this>>
) -> Result<BoxAndRef, (Error_, Heads)>
(See also BoxAndRefAsyncTryBuilder::try_build_or_recover()
.) Like try_new
, but all head fields are returned in the case of an error. The arguments are as follows:
Argument | Suggested Use |
---|---|
data | Directly pass in the value this field should contain |
data_ref_builder | Use a function or closure: (data: &_) -> Result<data_ref: _, Error_> |
pub(crate) fn with_data<'outer_borrow, ReturnType>(
&'outer_borrow self,
user: impl for<'this> FnOnce(&'outer_borrow Box<i32>) -> ReturnType
) -> ReturnType
[src]
&'outer_borrow self,
user: impl for<'this> FnOnce(&'outer_borrow Box<i32>) -> ReturnType
) -> ReturnType
Provides limited immutable access to data
. This method was generated because the contents of data
are immutably borrowed by other fields.
pub(crate) fn borrow_data<'this>(&'this self) -> &'this Box<i32>
[src]
Provides limited immutable access to data
. This method was generated because the contents of data
are immutably borrowed by other fields.
pub(crate) fn with_data_ref<'outer_borrow, ReturnType>(
&'outer_borrow self,
user: impl for<'this> FnOnce(&'outer_borrow &'this i32) -> ReturnType
) -> ReturnType
[src]
&'outer_borrow self,
user: impl for<'this> FnOnce(&'outer_borrow &'this i32) -> ReturnType
) -> ReturnType
Provides an immutable reference to data_ref
. This method was generated because data_ref
is a tail field.
pub(crate) fn borrow_data_ref<'this>(&'this self) -> &'this &'this i32
[src]
Provides an immutable reference to data_ref
. This method was generated because data_ref
is a tail field.
pub(crate) fn with_data_ref_mut<'outer_borrow, ReturnType>(
&'outer_borrow mut self,
user: impl for<'this> FnOnce(&'outer_borrow mut &'this i32) -> ReturnType
) -> ReturnType
[src]
&'outer_borrow mut self,
user: impl for<'this> FnOnce(&'outer_borrow mut &'this i32) -> ReturnType
) -> ReturnType
Provides a mutable reference to data_ref
. This method was generated because data_ref
is a tail field. No borrow_data_ref_mut
function was generated because Rust’s borrow checker is currently unable to guarantee that such a method would be used safely.
pub(crate) fn with<'outer_borrow, ReturnType>(
&'outer_borrow self,
user: impl for<'this> FnOnce(BorrowedFields<'outer_borrow, 'this>) -> ReturnType
) -> ReturnType
[src]
&'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.
pub(crate) fn with_mut<'outer_borrow, ReturnType>(
&'outer_borrow mut self,
user: impl for<'this> FnOnce(BorrowedMutFields<'outer_borrow, 'this>) -> ReturnType
) -> ReturnType
[src]
&'outer_borrow mut self,
user: impl for<'this> FnOnce(BorrowedMutFields<'outer_borrow, 'this>) -> ReturnType
) -> ReturnType
This method provides mutable references to all tail fields.
pub(crate) fn into_heads(self) -> Heads
[src]
This function drops all internally referencing fields and returns only the head fields of this struct.
Auto Trait Implementations
impl RefUnwindSafe for BoxAndRef
impl Send for BoxAndRef
impl Sync for BoxAndRef
impl Unpin for BoxAndRef
impl UnwindSafe for BoxAndRef
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>,