Crate ouroboros_examples[][src]

Modules

ouroboros_impl_box_and_ref

Encapsulates implementation details for a self-referencing struct. This module is only visible when using –document-private-items.

ouroboros_impl_chain_hack

Encapsulates implementation details for a self-referencing struct. This module is only visible when using –document-private-items.

ouroboros_impl_documentation_example

Encapsulates implementation details for a self-referencing struct. This module is only visible when using –document-private-items.

ouroboros_impl_undocumented

Encapsulates implementation details for a self-referencing struct. This module is only visible when using –document-private-items.

ouroboros_impl_visibility

Encapsulates implementation details for a self-referencing struct. This module is only visible when using –document-private-items.

Structs

BoxAndRef

A simple struct which contains a Box<i32> and a &'this i32.

ChainHack

A chain of references, where c references b which references a. This is an example of a struct which requires using chain_hack as of the time this was written.

DocumentationExample

The example provided in the documentation.

Undocumented

This struct is created using #[self_referencing(no_doc)] so the generated methods and builders are hidden from documentation.

Visibility

This struct demonstrates how visibility can be controlled. The struct is defined with the following code:

VisibilityAsyncBuilder

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:

VisibilityAsyncTryBuilder

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 makin your code both easier to refactor and more readable. Call try_build() or try_build_or_recover() to construct the actual struct. The fields of this struct should be used as follows:

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:

VisibilityTryBuilder

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 makin your code both easier to refactor and more readable. Call try_build() or try_build_or_recover() to construct the actual struct. The fields of this struct should be used as follows: